共有フォルダを表す 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 クラスのメソッドを呼んでますが、これについては別途書きます。