分配在CodeObjectCreateExpression的对象的属性值

问题描述 投票:1回答:1

我需要使用的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在构造函数中的参数值的属性?

c# .net-core codedom
1个回答
1
投票

随着@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);
© www.soinside.com 2019 - 2024. All rights reserved.