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,但如何使用现有实例?我在一个静态类中有几个属性,我想用这种技术访问它们。