0

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

根据 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.

当实现说它的构造函数中没有参数时,为什么它确实说参数计数不匹配?我改为new object[] { }null它说同样的错误。

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

4

1 回答 1

2

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

它的签名是:

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

因为该类具有参数化构造函数,所以没有自动生成的无参数构造函数可用。

于 2013-11-09T08:44:24.033 回答