c#反射参数计数不匹配

c#反射参数计数不匹配,c#,reflection,C#,Reflection,我一直在尝试创建System.DirectoryServices类的实例 根据MSDN,其实现如下: [DirectoryServicesPermissionAttribute(SecurityAction.LinkDemand, Unrestricted = true)] public class SearchResult 我的思考是这样的: ConstructorInfo ctor = typeof(SearchResult).GetConstructors(BindingFlags.In

我一直在尝试创建System.DirectoryServices类的实例

根据MSDN,其实现如下:

[DirectoryServicesPermissionAttribute(SecurityAction.LinkDemand, Unrestricted = true)]
public class SearchResult
我的思考是这样的:

ConstructorInfo ctor = typeof(SearchResult).GetConstructors(BindingFlags.Instance | BindingFlags.NonPublic)[0];
SearchResult abc = (SearchResult)ctor.Invoke(new object[] { });
ctor
中有一个值,但调用构造函数时,会发生错误:

An unhandled exception of type 'System.Reflection.TargetParameterCountException' occurred in mscorlib.dll
Additional information: Parameter count mismatch.
为什么当实现说它的构造函数中没有参数时,它会说参数计数不匹配?我将
newobject[]{}
更改为
null
,但它显示了相同的错误


我怎样才能解决这个问题?谢谢。

问题是DirectoryServices没有公共构造函数。通过Ildasm检查,可以看到它有一个内部构造函数,但不是无参数的

其签名为:

internal SearchResult(System.Net.NetworkCredential parentCredentials,
                         System.DirectoryServices.AuthenticationTypes parentAuthenticationType);

由于类具有参数化构造函数,因此没有自动生成的无参数构造函数可用

确实如此,导航中没有“构造函数”点。只有方法和属性。msdn文档没有提到私有或内部成员,因为它们不打算由用户代码调用。如果有一个公共的无参数构造函数,他们会提到它@CSharpie:是的,构造函数的内部保留名称命名为“.ctor”。