C# 将javascript对象传递给用C编写的winrt组件#

C# 将javascript对象传递给用C编写的winrt组件#,c#,javascript,windows-runtime,C#,Javascript,Windows Runtime,我在C#中创建了一个WinRT组件,它接受一个集合作为参数 namespace MyNamespace { public sealed class MyClass { public MyFunction(IReadOnlyDictionary<string, string> properties) { } } } 我不知道这为什么不起作用。有什么想法吗?我想 “您的WinRT组件需要公开(或重用)一个具体的类来实现您需要的IMap的特定实例化……”我的第一个

我在C#中创建了一个WinRT组件,它接受一个集合作为参数

namespace MyNamespace {
  public sealed class MyClass {
    public MyFunction(IReadOnlyDictionary<string, string> properties) {
    }
  }
}
我不知道这为什么不起作用。有什么想法吗?

我想


“您的WinRT组件需要公开(或重用)一个具体的类来实现您需要的IMap的特定实例化……”

我的第一个想法可能是
{'aaa':'bbbbbb'}=iRadonlyDictionary
我尝试了IDictionary而不是iRadonlyDictionary,但它不起作用。在组件的编译发生之后,我也尝试看看这个定义是什么样子,方法签名看起来像Windows.Foundation.Collections.IMap,但是我不知道如何在JavaScript中创建这样的对象,这是可行的,但是这是非常不方便的,因为我只需要重新实现所有的字典方法:(将您的答案标记为answer,因为它至少可以工作)您可以重载方法来接受javascript兼容对象,重新格式化它,然后将其传递给原始方法。
var x = new MyNamespace.MyClass();
x.MyFunction({'aaa': 'bbbb'});
var ps = new Windows.Foundation.Collections.PropertySet();
ps['aaa'] = "bbb";

var x = new MyNamespace.MyClass();
x.MyFunction(ps);