我有以下场景: C# 中的数据库编译为 Windows 运行时组件。
它的一个类如下所示:
public sealed class MyData
{
string TheGoods { get; private set;}
}
UI 在 WinJS 中,我有以下内容:
var b = dataInstance.theGoods;
问题是我得到一个异常并且属性中有以下内容:
System.ArgumentNullException 在 System.StubHelpers.HStringMarshaler.ConvertToNative(字符串托管)
查看 HStringMarshaler.ConvertToNative 的实现,如果字符串为空,它似乎会抛出。
这是否意味着不可能向 WinJS 公开一个空字符串?这是 WinJS 限制还是适用于所有 WinRT?
虽然 string.Empty 确实有效,但它在语义上与 null 不同,并且在某些情况下,empty 是有效的并且与 null 不同。
如果我将属性的类型更改为“对象”,那么它确实可以工作,但是当它真的应该是一个字符串时暴露一个对象似乎很讨厌。有任何想法吗?文档对此非常了解