为什么自定义的WinRT C++/CX控件默认添加[Windows::Foundation::Metadata::WebHostHidden]?

8
当我在WinRT C++/CX项目中创建新控件时,Visual Studio 2012默认会添加类属性[Windows::Foundation::Metadata::WebHostHidden]
示例:
namespace WindowsRuntimeComponent1
{
    [Windows::Foundation::Metadata::WebHostHidden]
    public ref class MyUserControl sealed
    {
    public:
        MyUserControl();
    };
}
  • 这个问题有文献资料说明吗?(我做了功课但是没有找到这个信息)
  • 据我所知,使用属性[WebHostHidden]会使WinRT HTML/Javascript项目中的类不可见。这是否意味着我不能在C++/CX中创建一个可以在Javascript中使用的控件?
1个回答

15
据我所知,使用属性[WebHostHidden]会使得该类在WinRT HTML/JavaScript项目中不可见。这是正确的:该属性隐藏了JavaScript投影中的类型,因此从JavaScript看来,这个类型就好像不存在一样。
这是否意味着我不能创建一个在C++/CX中可用于JavaScript的控件?
无论如何,您都无法从JavaScript中使用XAML控件。 在JavaScript中,UI是使用HTML而不是XAML编写的。

1
除了用户编写的控件之外,是否还有其他用例需要使用此属性?例如,假设我有一个完全不涉及 UI 的 C++/Cx 组件,在什么情况下应该使用 WebHostHidden 注释此组件? - Shmil The Cat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接