Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用AddWebAllowedObject时是否仅限于值类型?_C#_Win Universal App_Uwp - Fatal编程技术网

C# 使用AddWebAllowedObject时是否仅限于值类型?

C# 使用AddWebAllowedObject时是否仅限于值类型?,c#,win-universal-app,uwp,C#,Win Universal App,Uwp,在我的WebView中使用AddWebAllowedObject向Javascript公开C#组件时,函数参数和返回类型是否都必须是值类型?或者可以传递对象结构吗?不,您不限于值类型 你可以参考。这是一个JS项目,但在c#项目中也可以这样做。以下是您可以参考和搜索的兴趣代码: 调用AddWebAllowedObject的代码: document.getElementById("webview").addWebAllowedObject("winRTSharedObject", winRTShar

在我的WebView中使用AddWebAllowedObject向Javascript公开C#组件时,函数参数和返回类型是否都必须是值类型?或者可以传递对象结构吗?

不,您不限于值类型

你可以参考。这是一个JS项目,但在c#项目中也可以这样做。以下是您可以参考和搜索的兴趣代码:

调用AddWebAllowedObject的代码:

document.getElementById("webview").addWebAllowedObject("winRTSharedObject", winRTSharedObject);
HTML代码:

<body class="win-type-body">
    <div id="myDiv"></div>
    <script>
    if (window.winRTSharedObject !== undefined) {
    winRTSharedObject.checkPrimesInRange();
    } else {
    document.getElementById("myDiv").innerText = "\'winRTSharedObject\' object doesnt exists";
    }
    </script>
</body>

if(window.winRTSharedObject!==未定义){
winRTSharedObject.checkPrimesInRange();
}否则{
document.getElementById(“myDiv”).innerText=“\'winRTSharedObject\'对象不存在”;
}
C++ WRET组件中的代码:

WinRTSharedObject::WinRTSharedObject()
{
}

void WinRTSharedObject::CheckPrimesInRange()
{
    vector<int> numsVector;

    for (int num = startNumber; num <= endNumber; num++)
    {
        if (IsPrime(num))
        {
            numsVector.push_back(num);
            NotifyAppOfPrimes(num);
        }
    }

    int* numsArray = &numsVector[0];
    //return numsArray;
}
WinRTSharedObject::WinRTSharedObject()
{
}
void WinRTSharedObject::CheckPrimesInRange()
{
向量numsVector;

对于(int num=startNumber;numNo),您不限于值类型

您可以参考。这是一个JS项目,但在c#project中也可以这样做。以下是您可以参考和搜索的兴趣代码:

调用AddWebAllowedObject的代码:

document.getElementById("webview").addWebAllowedObject("winRTSharedObject", winRTSharedObject);
HTML代码:

<body class="win-type-body">
    <div id="myDiv"></div>
    <script>
    if (window.winRTSharedObject !== undefined) {
    winRTSharedObject.checkPrimesInRange();
    } else {
    document.getElementById("myDiv").innerText = "\'winRTSharedObject\' object doesnt exists";
    }
    </script>
</body>

if(window.winRTSharedObject!==未定义){
winRTSharedObject.checkPrimesInRange();
}否则{
document.getElementById(“myDiv”).innerText=“\'winRTSharedObject\'对象不存在”;
}
C++ WRET组件中的代码:

WinRTSharedObject::WinRTSharedObject()
{
}

void WinRTSharedObject::CheckPrimesInRange()
{
    vector<int> numsVector;

    for (int num = startNumber; num <= endNumber; num++)
    {
        if (IsPrime(num))
        {
            numsVector.push_back(num);
            NotifyAppOfPrimes(num);
        }
    }

    int* numsArray = &numsVector[0];
    //return numsArray;
}
WinRTSharedObject::WinRTSharedObject()
{
}
void WinRTSharedObject::CheckPrimesInRange()
{
向量numsVector;

对于(int num=startNumber;num)这些示例中的所有参数(setStartNumber、setEndNumber、NotifyAppOfPrimes)看起来是值类型。你想传递给c#component什么类型的对象或结构?你能给我一个例子吗?如果你想让c#component直接理解js复杂的对象或结构,那是不可能的。我们能做的是将它们解析为你在c#中期望的对象或结构。你用dynamic obje尝试过参数吗ct?然后您可以使用对象的值来实例化预定义的c#类。我想知道是否有一种方法可以传递一个简单的JSON对象,并将其映射到具有匹配属性的c#对象,或者反之亦然。听起来答案似乎是否定的,您只能传递字符串、整数等,然后将它们重新构建到接收端的对象中对我来说,是的。JSON是文本格式。对于c#,它是字符串。区别在于,如果将JSON格式字符串分配给javascript对象,它就知道它是JSON,因为JSON是javascript的子集。但是对于c#,我们需要序列化或反序列化。这些示例中的所有参数(setStartNumber、setEndNumber、NotifyAppOffPrimes)看起来是值类型。你想传递给c#component什么类型的对象或结构?你能给我一个例子吗?如果你想让c#component直接理解js复杂的对象或结构,那是不可能的。我们能做的是将它们解析为你在c#中期望的对象或结构。你用dynamic obje尝试过参数吗ct?然后您可以使用对象的值来实例化预定义的c#类。我想知道是否有一种方法可以传递一个简单的JSON对象,并将其映射到具有匹配属性的c#对象,或者反之亦然。听起来答案似乎是否定的,您只能传递字符串、整数等,然后将它们重新构建到接收端的对象中对我来说,是的。JSON是文本格式。对于c#,它是字符串。区别在于,如果将JSON格式字符串分配给javascript对象,它就知道它是JSON,因为JSON是javascript的子集。但是对于c#,我们需要序列化或反序列化。