1
forgottencoast 2020-12-03 00:15:50 +08:00
你先说你要调用那个 API,你找到了吗?文档链接呢?
|
2
badacook OP ADUser Constructors 就这个啊,我是想在 C#中创建一个对象,具有 ADUser 常用的属性,能否不用自定类,直接加载
Assembly:Microsoft.ActiveDirectory.Management.dll ,使用 ADUser 构造函数完成,就是想问一下 这个思路是否可行 |
3
forgottencoast 2020-12-04 22:55:39 +08:00
如果你看不到源代码的话,你不知道这个类的设计是否符合你的要求,虽然属性可以使用,但是里面可能会包含一些逻辑处理,这里面可能会在你的程序中引入 bug 。
而且 ADUser 这个类的继承关系很复杂,所以正常来说肯定是不建议这样用的,不过你非要这样用也不是不可以。 况且自己自定义一个类也是非常简单的事情。 |
4
badacook OP 我已经使用 ILSpy 反编译工具,查看了 Microsoft.ActiveDirectory.Management.dll 中 class ADUser 的源码,如下:
实际应用中 我不会这样做,这样尝试 主要是练习: C#调用 C#的非托管库及构造函数,并打印对象的属性名称和方法 但是我尝试着 C# 平台调用( P / Invoke ) 非托管库的方法,但构造函数的调用语法好像有不同 我还是没实现练习效果,不知是否可以给出该实例的示例代码,以供参考,谢谢了 其中 Microsoft.ActiveDirectory.Management.dll 已分享至网盘 链接: https://pan.baidu.com/s/1sLFBKPla6AvQ9OZc7uFQ2Q 提取码: d3eu using Microsoft.ActiveDirectory.Management.Commands; using System; using System.Security.Principal; namespace Microsoft.ActiveDirectory.Management { public class ADUser : ADAccount { public string GivenName { get { return (string)base.GetValue("GivenName"); } set { base.SetValue("GivenName", value); } } public string Surname { get { return (string)base.GetValue("Surname"); } set { base.SetValue("Surname", value); } } static ADUser() { ADEntity.RegisterMappingTable(typeof(ADUser), ADUserFactory<ADUser>.AttributeTable); } public ADUser() { } public ADUser(string identity) : base(identity) { } public ADUser(Guid guid) : base(guid) { } public ADUser(SecurityIdentifier sid) : base(sid) { } public ADUser(ADObject identity) : base(identity) { } } } |