.net - WinRT 中的 ComposableAttribute 是什么?

标签 .net xaml windows-runtime windows-store-apps

我试图了解 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/

相关文章:

c# - Azure DocumentDB 性能缓慢

c# - 用.NET排版文本

.net - 如何在 app.config 中定义自定义 TraceListener

c# - WPF:将ListBox的高度限制为网格行的高度

c# - 使用 XamlRenderingBackgroundTask 呈现不在可视化树中的图像

c# - 将 Dropbox 生成的访问 token 与 DropNetRT 结合使用

sqlite - 如何为 WinRT/ARM 编译 sqlite?

c# - 加载常量的 MSIL 指令

c# - 如何关闭应用栏(Windows 8 Metro)

javascript - 显示位于文件夹中的文件并在下拉列表中显示它们以供使用 javascript html 用于 Metro 应用程序进行选择