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

Windows 8 为什么在自定义WinRT C+中默认添加[Windows::Foundation::Metadata::WebHostHidden]+/CX控制?,windows-8,windows-runtime,visual-studio-2012,c++-cx,Windows 8,Windows Runtime,Visual Studio 2012,C++ Cx,在WinRT C++/CX项目中创建新控件时,默认情况下,Visual Studio 2012会添加类属性[Windows::Foundation::Metadata::WebHostHidden] 例如: namespace WindowsRuntimeComponent1 { [Windows::Foundation::Metadata::WebHostHidden] public ref class MyUserControl sealed { public

在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中使用的控件
据我所知,使用属性
[WebHostHidden]
使该类对于WinRT HTML/JavaScript项目不可见

这是正确的:该属性隐藏JavaScript投影中的类型,因此从JavaScript看,该类型似乎不存在

这是否意味着我不能用C++/CX创建一个可以在JavaScript中使用的控件

不能使用JavaScript中的XAML控件,句号。使用JavaScript时,UI是使用HTML而不是XAML编写的。

除了用户编写的控件之外,还有其他需要此属性的用例吗?例如,假设我有一个C++/Cx组件根本不处理w/UI,在什么情况下应该用w/WebHostHidden注释这个组件?