共有フォルダを表す Volume クラスの C# のコードです。
[DataObject()]
public sealed class Volume : DomainObject
{
#region プライベートフィールド
private string[] _keywords;
#endregion
#region インターナルコンストラクタ
//DirectoryEntry を指定して Volume クラスの新しいインスタンスを初期化します。
internal Volume(DirectoryEntry entry)
: base(entry)
{
_keywords = entry.Properties["keywords"].Cast<string>().ToArray();
}
#endregion
#region パブリックプロパティ
//キーワードを取得または設定します。
public string[] Keywords
{
get
{
return _keywords;
}
set
{
if (base.IsDisposed)
{
throw new ObjectDisposedException(this.GetType().Name);
}
base.Entry.Properties["keywords"].Value = value;
_keywords = base.Entry.Properties["keywords"].Cast<string>().ToArray();
}
}
//UNC パスを取得または設定します。
public string UncPath
{
get
{
if (base.IsDisposed)
{
throw new ObjectDisposedException(this.GetType().Name);
}
return (string)base.Entry.Properties["uNCName"].Value;
}
set
{
if (base.IsDisposed)
{
throw new ObjectDisposedException(this.GetType().Name);
}
base.Entry.Properties["uNCName"].Value = value;
}
}
#endregion
#region パブリックメソッド
//指定した名前の共有フォルダを検索します。このメソッドはデータバインド用です。
[DataObjectMethod(DataObjectMethodType.Select)]
public static Volume FindByName(string name)
{
return (Volume)DirectoryAccess.FindDirectoryObject(name, CategoryType.Volume);
}
//共有フォルダの一覧を取得します。このメソッドはデータバインド用です。
[DataObjectMethod(DataObjectMethodType.Select)]
public static IList<Volume> GetVolumes()
{
return DirectoryAccess.GetVolumes(); //共有フォルダを取得
}
#endregion
}
説明は VB のコードの方に書いてます。
データバインド用のメソッドは内部で DirectoryAccess クラスのメソッドを呼んでますが、これについては別途書きます。