我试图了解 WinRT 的一些较低级别部分是如何工作的。我遇到了 ComposableAttribute
这可能是我需要的关键。然而,documentation上面很薄。
Indicates how a programming element is composed.
正如你所知,这实际上并没有告诉我任何事情。有谁知道这个属性的用途是什么以及它应该做什么?
最佳答案
ComposableAttribute
将类型标记为可实例化,以用作跨 Windows 运行时 ABI 边界的基类。它类似于 ActivatableAttribute ,后者将类型标记为可跨 ABI 边界“激活”实例化(即直接使用,而不是不用作基类)。 Windows运行时基于COM,并不真正支持真正的继承。相反,继承是通过元数据欺骗来伪造的,并且 aggregation .
您可以定义自己的可组合类型,但如果这样做,它们必须派生自平台中的可组合类型(这是 Windows 8 app certification requirements 中的元数据规则之一)。对于 Windows 8,这意味着您的可组合类型必须直接或间接“派生”于 Windows.UI.Xaml.DependencyObject
。最后,可组合类型只能使用 IDL 和 WRL 来编写; C++/CX 和 .NET 都不能用于定义可组合类型。
关于.net - WinRT 中的 ComposableAttribute 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12735517/