C# ExpressionBuilder返回任何类型的对象

C# ExpressionBuilder返回任何类型的对象,c#,object,expressionbuilder,C#,Object,Expressionbuilder,下面的代码适用于基本表达式(毫不奇怪) 现在我还想返回非基本类型。比如说一个公司对象。 这是怎么回事?我似乎找不到任何好的例子 无效的基元类型: ... 考虑使用 CodeObjectCreateExpression CodeExpression newSizeExpr = new CodeObjectCreateExpression(new CodeTypeReference(“System.Drawing.Size”), new CodePrimitiveExpression(640)

下面的代码适用于基本表达式(毫不奇怪)

现在我还想返回非基本类型。比如说一个公司对象。
这是怎么回事?我似乎找不到任何好的例子

无效的基元类型: ... 考虑使用 CodeObjectCreateExpression

CodeExpression newSizeExpr = new CodeObjectCreateExpression(new CodeTypeReference(“System.Drawing.Size”),
   new CodePrimitiveExpression(640), new CodePrimitiveExpression(400));

如何实现CodeObjectCreateExpression或alternative?

我不知道您公司对象的构造函数是什么样子,因此下面是一个大小示例:

建造师

new Size(640, 400)
使用CodeObjectCreateExpression

CodeExpression newSizeExpr = new CodeObjectCreateExpression(new CodeTypeReference(“System.Drawing.Size”),
   new CodePrimitiveExpression(640), new CodePrimitiveExpression(400));
如果您的公司构造函数接受原语参数,则可以像上面的示例中那样使用CodePrimitiveExpressions。如果它需要非基本类型,则可以使用CodePrimitiveExpressions实例化这些非基本类型。递归,直到获得构造公司对象所需的内容


更新:源代码可能会有所帮助:

您应该查看CodeExpression的子类,例如CodePropertyReferenceExpression使用属性和CodeVariableReferenceExpression获取实例


代码表达式是语言不可知语句和表达式的低级表示。您必须将等效的C#语句分解为非常原始的组件。

Thnx,但如何使用现有实例?我在一个静态类中有几个属性,我想用这种技术访问它们。