C# 使用AddWebAllowedObject时是否仅限于值类型?
在我的WebView中使用AddWebAllowedObject向Javascript公开C#组件时,函数参数和返回类型是否都必须是值类型?或者可以传递对象结构吗?不,您不限于值类型 你可以参考。这是一个JS项目,但在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
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\'对象不存在”;
}
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#,我们需要序列化或反序列化。