【发布时间】:2014-06-17 17:09:58
【问题描述】:
是否可以使类的成员仅对 COM 可见,即对托管代码不可见?这是一个具体的例子:
假设我有一个带有DateSubmitted 属性的Widget 类,该属性是一个可以为空的日期(即DateTime?);它可能尚未“提交”,因此DateSubmitted 值可能是null。当我从另一个托管程序集引用我的程序集时,我想使用此属性。但是,当我从 COM 环境(例如 VBA)引用我的程序集时,该属性将不可用,因为 COM 对 .NET 中的可空类型一无所知。
理想情况下,我想要另一个属性,它只是一个普通的“日期”类型,因此它对 COM 可见,并且可能是一个布尔标志,用于在日期为空时向 COM API 用户指示,我不想要这些属性在 .NET 中可用。
我想我想知道是否有一个属性或其他东西,也许在System.Runtime.InteropServices 的某个地方,这将使我能够有效地从.NET 中隐藏一个成员,但使其在 COM 中可用。
【问题讨论】:
-
我认为你的意思是相反的:你想隐藏一个成员在 COM 可见但在 .NET 中仍然可见。
标签: .net interop com-interop