3

我创建了一个 C# Windows 运行时组件,它有一个接受 IDictionary 参数的公共静态方法。

public sealed class DictionaryTest
{
    public static void print(IDictionary<string, string> dict)
    {
    }
}

我正在从 WinJS 应用程序访问该库,并在 default.js 中调用此方法,如下所示:

var ps = new Windows.Foundation.Collections.PropertySet();
ps['testkey'] = "testvalue";
TestComponent.DictionaryTest.print(ps);

当我运行应用程序时,我收到“不支持此类接口”错误。print() 的智能感知显示它接受 Windows.Foundation.Collections.IMap 的参数,但我找不到该集合。

如何将字典之类的对象从 Javascript 传递给 print(IDictionary)?

编辑:虽然@IAbstract 提出了一个很好的观点,但我不能将其用作解决方案。我的限制是我不能修改 print() 方法。所以我需要能够将字符串的字典类型对象从 javascript 传递给print(IDictionary<string, string> dict)方法。

4

1 回答 1

0

Windows.Foundation.Collections.PropertySet 声明如下:

public sealed class PropertySet : Object,
    IPropertySet,
    IObservableMap<String, Object>,
    IDictionary<String, Object>,
    IEnumerable<KeyValuePair>

将值对象转换为字符串。你不能总是Object.ToString()隐含地依赖。

于 2013-04-01T18:23:09.553 回答