2010-03-19 69 views
2

我正在創建一個C#庫,並打算向它公開一個COM接口。C#部分類和COM接口

我明白requried做到這一點的步驟,即

  1. 確保assumbly GUID分配,e.g: [assembly: Guid("dde7717b-2b75-4972-a4eb-b3d040c0a182")]
  2. 確保COMVibile屬性爲True
  3. 將一個GUID屬性的類,例如[GuidAttribute("4df74b15-d531-4217-af7e-56972e393904")]
  4. 使用Regasm註冊。

我的問題是這樣的。如果我有一個部分類定義。我是否需要將GuidAttribute添加到這兩個類中?

事實上,想到這個,我猜這個問題適用於任何屬性(例如Serializable)。

任何幫助,將不勝感激。謝謝。

回答

4

如果您將屬性兩次應用於同一個類(不管是在同一個文件中還是在兩個不同的文件中),那麼該類將應用兩次屬性。在兩個文件中定義的部分類不是兩個類,它只是在多個文件中部分定義的一個類。所以,不,不要重複每個文件中的GuidAttribute。

+1

感謝。實際上,即使試圖添加兩次也會導致失敗。 – 2010-03-19 11:53:36

1

在編譯時,部分類型定義的屬性被合併。例如,以下聲明:

[System.SerializableAttribute] 
partial class Moon { } 

[System.ObsoleteAttribute] 
partial class Moon { } 

等效於:

[System.SerializableAttribute] 
[System.ObsoleteAttribute] 
class Moon { }