在.Net中动态生成抽象类

时间:2012-07-22 22:19:56

标签: .net compilation

我有一个导出过程,它将带注释的类作为输出文件定义(很像Linq-To-Entities)

一个类看起来像这样:

<ExportDefinition(Name:="Some Export Format")>
Public Class SomeExportFormat
    Overridable Property Id As Integer

    <DisplayName("Customer Name")>
    Overridable Property CustomerName As String


End Class

属性是可覆盖的,因为我有时需要代理。

我需要添加允许指定瞬态格式的功能(WCF调用请求以一次性格式导出特定数据)。

为了避免重写大量的导出代码,我想采用我通过WCF传递的定义并定义一个新类。

我最好使用System.CodeDom.Compiler还是有更优雅的解决方案?

1 个答案:

答案 0 :(得分:1)

就个人而言,我会看TypeBuilder,但我有点...... 不平衡,并准备跳进ILGenerator。但是,是的,您可以通过这种方式创建新的子类。但请注意 - WCF和EF不会自动接受您的类型。大多数继承感知库(包括WCF和EF)将讨厌动态子类,因为他们不期望它们并将它们视为完全意外的数据。