Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 动态对象C4.0,在运行时从预定义值创建列_C# 4.0 - Fatal编程技术网

C# 4.0 动态对象C4.0,在运行时从预定义值创建列

C# 4.0 动态对象C4.0,在运行时从预定义值创建列,c#-4.0,C# 4.0,我使用过dynamic object,但在这种情况下,列名来自预定义的字符串数组。如何在运行时使用这些预定义的列值集创建对象?。 我想这样做的原因是创建一个自定义类并在其中添加自定义验证属性,这样我就可以在运行时使用反射来填充映射到自定义类的这些动态对象的值,并使用单个函数验证这些值 dynamic x = new MyCustomClass(); x.Name = "Jones"; // The Field or Column name "Name" comes from a array

我使用过dynamic object,但在这种情况下,列名来自预定义的字符串数组。如何在运行时使用这些预定义的列值集创建对象?。 我想这样做的原因是创建一个自定义类并在其中添加自定义验证属性,这样我就可以在运行时使用反射来填充映射到自定义类的这些动态对象的值,并使用单个函数验证这些值

 dynamic x = new MyCustomClass();
 x.Name = "Jones"; // The Field or Column name "Name" comes from a array of strings.

 Validator.Validate(x); //Here i use reflection to iterate through the custom attributes on MyCustomClass and validate them based on conditions.

有可能做这样的事情吗?x.Name=Jones;:-

我建议您在MyCustomClass中添加索引器属性

public string this[string binder] {
    get { 
        string result;
        return (this.TryGetMember(binder, out result)) ? result : string.Empty
    }
    set {
        this.TrySetMember(binder, value);
    }
}

x["Name"] = "Jones";

expando对象看起来像是在做你想做的事情-请在下面的链接中选择3/4: