在我们的应用中,无论对象的类型如何,我们都需要将对象的属性以propertyName、propertyValue、propertyType的形式保存到同一个数据库表中。我们决定使用 XamlWriter 来保存给定对象的所有属性。然后,我们使用 XamlReader 加载创建的 XAML,并将其转回属性值。这在大多数情况下工作正常,除了空字符串。 XamlWriter 将保存一个空字符串,如下所示。
<String xmlns="clr-namespace:System;assembly=mscorlib" xml:space="preserve" />
XamlReader 看到这个字符串并尝试创建一个字符串,但在 String 对象中找不到要使用的空构造函数,因此它抛出 ParserException。
我能想到的唯一解决方法是,如果它是一个空字符串,则不实际保存该属性。然后,当我加载属性时,我可以检查哪些属性不存在,这意味着它们将是空字符串。
是否有一些解决方法,或者是否有更好的方法?
最佳答案
我们在尝试序列化字符串时遇到了类似的问题。我们可以解决它的唯一方法是创建一个具有适当构造函数的 StringWrapper
结构或类。然后我们使用这种类型来加载和保存我们的字符串值。
关于c# - XamlReader.Parse 在空字符串上引发异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2502696/