是否可以讓一個類的成員僅對COM可見,即不可以對託管代碼進行操作?這裏有一個具體的例子:從.NET代碼隱藏成員,但不從COM隱藏成員
說我有一個Widget
類與DateSubmitted
屬性是可空日期(即DateTime?
);它可能尚未「提交」,因此DateSubmitted
的值可能是null
。當我從另一個託管程序集引用我的程序集時,我想使用此屬性。但是,當我從COM環境(例如VBA)引用我的程序集時,該屬性將不可用,因爲COM不知道.NET中的可空類型。
理想情況下,我想擁有另一個屬性,它只是一個普通的「日期」類型,因此它對COM可見並且可能是一個布爾標誌,用於向COM API用戶指示日期爲空時的狀態,而且我不希望這些屬性在.NET中可用。
我想我想知道的是,是否有一個屬性或者什麼東西,也許在System.Runtime.InteropServices
某處,這將允許我有效地隱藏.NET成員,但使它在COM中可用。
我認爲你的意思是相反:你想隱藏一個成員從COM可見但仍然可見的.NET。 –