我创建了一个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()的intellisense显示它接受Windows.Foundation.Collections.IMap的参数,但我无法找到该集合。
如何将类似字体的字典从Javascript传递到print(IDictionary)?
编辑:
虽然@IAbstract提出了一个很好的观点,但我不能将其作为解决方案。我的约束是我无法修改print()方法。所以我需要能够将字符串的字典类型对象从javascript传递到print(IDictionary<string, string> dict)
方法。
答案 0 :(得分:0)
Windows.Foundation.Collections.PropertySet声明如下:
public sealed class PropertySet : Object,
IPropertySet,
IObservableMap<String, Object>,
IDictionary<String, Object>,
IEnumerable<KeyValuePair>
将值对象强制转换为字符串。您不能总是隐含地依赖Object.ToString()
。