【发布时间】:2012-10-04 20:37:35
【问题描述】:
我试图了解 WinRT 的一些较低级别的部分是如何工作的。我遇到了ComposableAttribute,这可能是我需要的关键。但是,上面的documentation 很薄。
表示编程元素的组成方式。
如您所知,这实际上并不能告诉我任何事情。有谁知道这个属性的用途和它应该做什么?
【问题讨论】:
标签: .net xaml windows-runtime windows-store-apps
我试图了解 WinRT 的一些较低级别的部分是如何工作的。我遇到了ComposableAttribute,这可能是我需要的关键。但是,上面的documentation 很薄。
表示编程元素的组成方式。
如您所知,这实际上并不能告诉我任何事情。有谁知道这个属性的用途和它应该做什么?
【问题讨论】:
标签: .net xaml windows-runtime windows-store-apps
ComposableAttribute 将类型标记为可实例化以用作跨 Windows 运行时 ABI 边界的基类。它类似于ActivatableAttribute,它将一个类型标记为可实例化以用于跨 ABI 边界的“激活”(即直接使用,不用作基类)。 Windows 运行时基于 COM,并不真正支持真正的继承。相反,继承是通过元数据欺骗和aggregation 伪造的。
您可以定义自己的可组合类型,但如果这样做,它们必须派生自平台中的可组合类型(这是Windows 8 app certification requirements 中的元数据规则之一)。对于 Windows 8,这意味着您的可组合类型必须直接或间接地“派生”自 Windows.UI.Xaml.DependencyObject。最后,可组合类型只能使用 IDL 和 WRL 编写; C++/CX 和 .NET 都不能用于定义可组合类型。
【讨论】: