我正在使用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
的字符串属性,并使用任何我想要的格式进行解析,但我希望有更简洁的方法存在。感谢您能提供的任何帮助!编辑 - 以防有人想知道,我正在尝试修改的实际任务是基于已实例化的Entity Framework DbContext创建预生成视图。我们有自己的DbContext子类,其中包含各种构造函数,并且我们希望在视图生成过程中调用特定的构造函数。