Quantcast
Channel: わんくま同盟
Viewing all articles
Browse latest Browse all 994

ドメインオブジェクト用のクラス

$
0
0

DirectoryObject クラスの次は DomainObject クラスです。このクラスはドメインの Directory オブジェクト共通のクラスになる抽象クラスで、DirectoryObject クラスを継承し IDomain インターフェイスを実装します。

Windowsアプリではローカルのユーザとグループも扱うため、ローカルのクラスは Directory オブジェクト用のクラスを継承して作成することになります。

ローカルのユーザとグループを扱わないならクラス(と実装インターフェイス)を分ける必要はないですし、IUser と IGroupのインターフェイスもいらないです。

 

VB

Public MustInherit ClassDomainObject

  InheritsDirectoryObject

  ImplementsIDomain

 

#Region" プライベートフィールド "

  Private ReadOnly _path, _name As String

#End Region

 

#Region" プロテクトコンストラクタ "

  'DirectoryEntry を指定して DirectoryObject クラスの新しいインスタンスを初期化します。

  Protected Sub New(entry AsDirectoryEntry)

    MyBase.New(entry)

    _path = DirectoryAccess.GetBelongPath(entry)    '所属パスを取得

    _name = entry.Properties.Item("name").Value.ToString()

  End Sub

#End Region

 

#Region" パブリックプロパティ "

  '表示用の所属パスを取得します。

  Public ReadOnly Property DisplayPath As String ImplementsIDomain.DisplayPath

    Get

      Return _path

    End Get

  End Property

 

  '表示用の名前を取得します。

  Public Overrides ReadOnly Property Name As String

    Get

      Return _name

    End Get

  End Property

#End Region

End Class

 

C#

public abstract classDomainObject : DirectoryObject, IDomain

{

  #regionプライベートフィールド

  private readonly string _path, _name;

  #endregion

 

  #regionプロテクトコンストラクタ

  //DirectoryEntry を指定して DirectoryObject クラスの新しいインスタンスを初期化します。

  protected DomainObject(DirectoryEntry entry)

    : base(entry)

  {

    _path = DirectoryAccess.GetBelongPath(entry);    //所属パスを取得

    _name = entry.Properties["name"].Value.ToString();

  }

  #endregion

 

  #regionパブリックプロパティ

  //表示用の所属パスを取得します。

  public string DisplayPath

  {

    get

    {

      return _path;

    }

  }

 

  //表示用の名前を取得します。

  public override string Name

  {

    get

    {

      return _name;

    }

  }

  #endregion

}

 

コンストラクタ内で表示用の所属パスをセットするために DirectoryAccess.GetBelongPath メソッドを呼んでます。

このメソッドは引数で受け取った DirectoryEntry の Path プロパティの値を、表示用の所属パスにして返します。

例えば virtual.testdom.com ドメインの本社OU内の営業部OUにある SalesUser というオブジェクトの DirectoryEntry の場合、Path プロパティは次の値になります。

LDAP://virtual.testdom.com/CN=SalesUser,OU=営業部,OU=本社,DC=virtual,DC=testdom,DC=com

この値から「本社/営業部」という値を返します。


Viewing all articles
Browse latest Browse all 994

Trending Articles