C# 如何为各种构造函数执行Activator.CreateInstance?

C# 如何为各种构造函数执行Activator.CreateInstance?,c#,C#,我需要获取DataContext的子类,我在某个地方找到了下面的函数,它确实找到了我的子类,但我无法实例化它:( MappingSource是直接实例化的,是一个实例字段。我哪里出错了?我必须做什么才能使它工作 注:这是.NET 4.0TargetInvocationException表示它调用的构造函数引发了异常。这可能是由于您为连接字符串传入的实际值造成的。您可能希望尝试使用调试器并在构造函数中设置断点,以获取连接字符串和(1)确保它正在被调用,并且(2)确定异常发生的位置。我认为您的错误是

我需要获取DataContext的子类,我在某个地方找到了下面的函数,它确实找到了我的子类,但我无法实例化它:(

MappingSource是直接实例化的,是一个实例字段。我哪里出错了?我必须做什么才能使它工作


注:这是.NET 4.0

TargetInvocationException表示它调用的构造函数引发了异常。这可能是由于您为连接字符串传入的实际值造成的。您可能希望尝试使用调试器并在构造函数中设置断点,以获取连接字符串和(1)确保它正在被调用,并且(2)确定异常发生的位置。

我认为您的错误是其他错误。如果Activator.CreateInstance找不到您的构造函数,您将得到一个
MissingMethodException
而不是
TargetInvocationException
。我怀疑您尝试实例化的实际类中还有其他错误。

请尝试transla点击错误消息。哈哈…。他说“do do”…:)cctor不是静态构造函数吗?它有一个吗?如果有,你能发布它吗?我同意,看起来你在构造函数中抛出了一个NullReferenceException。如果要进行双重检查,请运行调试器并在构造函数上设置断点,以查看是否正在调用它。感谢您回答此问题。这是另外一件事,我现在恨我自己。谢谢你抽出时间。你是对的,这是服务定位器的问题:(我希望我从未走上那条黑暗的道路。
  public static IEnumerable<T> GetSubclassesFor<T>(Assembly assembly)
  {
   return (assembly.GetTypes()
    .Where(t => t.BaseType == (typeof (T)))
    .Select(t => (T) Activator.CreateInstance(t, new object[] {"asdasd"})))
    .ToList();
  }
    public CashierDC(string connection) :
   base(connection, mappingSource)