我需要使用的CodeDOM创建一个对象像这样(见下文)。
internal static readonly Dynamic class1 = new Dynamic
{
VendorId = "VTS",
Test = 10.33f
};
我曾尝试已在类中创建Dynamic
构造函数(见下文),这需要所有需要的值设置为parameters.Sadly(这是使用的CodeDOM创建),得到它没事,它使用Dynamic
类提供的错误代码后这是,它不能使用参数的构造函数(因为它是一个ML.NET
数据结构)的错误
CodeConstructor constructor = new CodeConstructor();
constructor.Attributes = MemberAttributes.Public;
constructor.Parameters.Add(new CodeParameterDeclarationExpression(typeof(float), "test"));
CodeFieldReferenceExpression reference =
new CodeFieldReferenceExpression(
new CodeThisReferenceExpression(), "test");
constructor.Statements.Add(new CodeAssignStatement(reference,
new CodeArgumentReferenceExpression("test")));
targetClass.Members.Add(constructor);
我将如何分配,而无需使用的CodeDOM在构造函数中的参数值的属性?
随着@JeroenMostert的意见帮助,我能找到我的问题的解决方案,可能是用作ML.NET的数据结构:
CodeConstructor constructor = new CodeConstructor
{
Attributes = MemberAttributes.Public
};
foreach (var item in features)
{
CodeFieldReferenceExpression reference =
new CodeFieldReferenceExpression(
new CodeThisReferenceExpression(), item.Id);
constructor.Statements.Add(new CodeAssignStatement(reference, new CodePrimitiveExpression(item.TestCase)));
}
targetClass.Members.Add(constructor);