假设我有一个带有一些属性和属性的A类,和带有相同的B类,如何在运行时将这两个属性和属性属性合并为一个类,或者更好的是我如何将这两个类添加到第三个类中作为这个新类的属性及其字段,属性,方法等...在运行时?
使用反射或新闻.NET 4.0动态或expando对象
编辑:该死的我很抱歉所有人都不清楚,我想要的是为MVC创建一个动态ViewModel,其他类在其他程序集中,我希望它们成为模型的一部分,具有Datavalidation属性.我不知道有多少或究竟这些类是要去的,所以我想通过组件迭代,并选择他们然后将它们添加到主视图模型.
您无法在运行时更改类型.Expando 可能是一个选项,但我不清楚你想如何与这个对象进行交互,因为你似乎只限于反射,而expando并不是反思的巨大朋友.
这可能有助于澄清您的要求,但IMO可能会更好地考虑根据两个输入的反射加载(在运行时)一个属性包; 像是一个Dictionary<string,object>让你将命名键映射到值的东西.
另外一件事可能是你在这之后是partial类,但这是一种分布在多个源文件上的单一类型:
partial class Foo {
private string bar;
}
partial class Foo {
public string Bar { get {return bar;} set {bar = value;} }
}
Run Code Online (Sandbox Code Playgroud)
这里的最后一个选择是TypeBuilder,但在大多数情况下,这都是大规模的矫枉过正.
| 归档时间: |
|
| 查看次数: |
5130 次 |
| 最近记录: |