有没有一个工具可以自动生成类的包装器?

时间:2009-07-08 17:13:24

标签: .net code-generation

我想访问.NET Framework的一些内部类,但使用反射不是非常易读,而且使用起来很有趣。

是否有人知道是否存在一个工具来自动生成这些内部类的包装类?

1 个答案:

答案 0 :(得分:3)

嗯,Visual Studio可以围绕您自己的类生成包装器,以进行单元测试。这称为阴影类或阴影组件。这可以用于对框架类执行相同的操作。

有几个手动步骤:

首先,创建一个framework.accessor文件,它是一个纯文本文件,其中应包含您希望为其构建阴影的程序集的名称(您的项目也必须引用程序集)。例如:

System.dll

然后,手动编辑.csproj文件,并添加此项目组:

<ItemGroup>
    <Shadow Include="framework.accessor" />
</ItemGroup>

构建项目。您现在可以使用生成的* _Accessor类访问内部类和私有方法。

这是关于这个主题的good blog post(从中我也得到了这个答案的大部分信息)。

请记住,使用库中的私有方法和类是不好的做法,但我认为你有理由。