我一直在尝试创建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.
为什么当实现说它的构造函数中没有params时,它确实说参数计数不匹配?我将new object[] { }
更改为null
,但它说的是同样的错误。
我该如何解决这个问题?感谢。
答案 0 :(得分:2)
问题是DirectoryServices没有公共构造函数。使用Ildasm检查可以看到它有一个内部构造函数,但不是无参数构造函数。
它的签名是:
internal SearchResult(System.Net.NetworkCredential parentCredentials,
System.DirectoryServices.AuthenticationTypes parentAuthenticationType);
因为该类具有参数化构造函数,所以没有自动生成的无参数构造函数可用。