マイナーでもいいよね??

殆どVB系、でも .NET じゃない VB は知らないよん

目次

Blog 利用状況

書庫

日記カテゴリ

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

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

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

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

 

VB

Public MustInherit Class DomainObject

  Inherits DirectoryObject

  Implements IDomain

 

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

  Private ReadOnly _path, _name As String

#End Region

 

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

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

  Protected Sub New(entry As DirectoryEntry)

    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 Implements IDomain.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 class DomainObject : 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

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

投稿日時 : 2013年7月5日 23:55

コメントを追加

No comments posted yet.
タイトル
名前
URL
コメント