我正在处理需要实例化类的 MSBuild 任务。该类最初只有一个无参数构造函数,因此所需要的所有 MSBuild 任务就是实例化该类的类型名称。现在我们有一个为特定构造函数运行任务的用例,我不知道如何以通用方式处理它。假设我需要实例化不同风格的ClassA
:
public class ClassA
{
public ClassA() { }
public ClassA(int someArgument) { }
public ClassA(int someArgument, bool someOtherArgument) { }
}
这是原始任务的样子:
<DoSomethingTask Assembly="ContainsClassA.dll" Type="ClassA" />
我的理想任务看起来像这样,所以我可以调用任何具有原始类型作为参数的构造函数:
<DoSomethingTask Assembly="ContainsClassA.dll" Type="ClassA">
<ConstructorArgs>
<Arg type="int">1</Arg>
<Arg type="bool">True</Arg>
</ConstructorArgs>
</DoSomethingTask>
我很不知道要搜索什么来获得这种功能。我可以做一些事情,比如创建一个名为的字符串属性ConstructorArgs
并使用我想要的任何格式解析它,但我希望存在更清晰的东西。感谢您的任何帮助,您可以提供!
编辑 - 如果有人想知道,我尝试修改的实际任务会创建一个基于实例化实体框架 DbContext 的预生成视图。我们有自己的 DbContext 子类和各种构造函数,我们希望能够在视图生成期间调用特定的构造函数。