C# UserPrincipal(PrincipalContext)的新实例返回Null

C# UserPrincipal(PrincipalContext)的新实例返回Null,c#,.net,active-directory,C#,.net,Active Directory,我在一个构造函数中有一段代码: public class ADUser : ADObject { public ADUser(PrincipalContext ouContext) : base(null) { ou = ouContext; // Even after instantiating, user remains null, which is where the problem lies.

我在一个构造函数中有一段代码:

public class ADUser : ADObject
{
    public ADUser(PrincipalContext ouContext)
                : base(null)
    {
         ou = ouContext;
         // Even after instantiating, user remains null, which is where the problem lies.
         user = new UserPrincipal(ouContext);
         base.principal = user;
    }
}

public abstract class ADObject
{
    protected Principal principal;
    protected PrincipalContext ou;

    public ADObject(Principal principal)
    {
        this.principal = principal;
    }
}
ou是基类中的受保护变量,用于存储正在修改或创建的AD用户的AD ou的PrincipalContext

调试时,参数ouContext不是空值,但每次我尝试以它作为参数实例化新的UserPrincipal对象时,用户总是以空值结束

以下是ouContext PrincipalContext对象的输出:

-ou {System.DirectoryServices.AccountManagement.PrincipalContext}   System.DirectoryServices.AccountManagement.PrincipalContext
        ConnectedServer "CensoredDC02.CensoredDomain.CensoredParentDomain.com"  string
        Container   "OU=Censored,OU=Censored2,DC=CensoredDomain,DC=CensoredParentDomain,DC=com" string
        ContextType Domain  System.DirectoryServices.AccountManagement.ContextType
        Name    "CensoredDomain"    string
        Options Negotiate | Signing | Sealing   System.DirectoryServices.AccountManagement.ContextOptions
        UserName    null    string
PrincipalContext对象是在另一个类中使用以下代码创建的:

/* baseDomain has the FQDN the OU is in, and ouSelection contains the full DN path of the OU. */
ouContext = new PrincipalContext(ContextType.Domain, baseDomain, ouSelection.SelectedValue.ToString());
/* Then a new ADUser object is created... */
ADUser user = new ADUser(ouContext);
/* Shortly after, the null value returned by new UserPrincipal(ouContext) causes an exception to be thrown in another function. */

提前感谢您的帮助

这里没有足够的上下文。请包含足够的源代码以重现问题。否则我们只是猜测。你是什么意思?那篇文章到处都是上下文别开玩笑了,我不知道还有什么好补充的。在创建ouContext后不久,将调用新的ADUserouContext,然后新的UserPrincipalouContext返回空值。为了清楚起见,我将把它添加到帖子中。这里仍然没有足够的代码来编译和运行,所以你会得到猜测而不是答案。构造函数不能返回空值,因此代码中存在一个问题,您尚未提供该问题。你做到了!你已经清除了蜘蛛网!这是缺失的一环;实例化实际上并没有返回null,该对象包含我稍后在代码中处理的null值。VisualStudio呈现信息的方式使其看起来好像对象实际上是空的。很容易被一个根本不存在的问题蒙蔽双眼…: