c# - XamlReader.Parse 在空字符串上引发异常

标签 c# xaml string xamlreader

在我们的应用中,无论对象的类型如何,我们都需要将对象的属性以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/

相关文章:

java - 解析双java时出错

c# linq nested "conditional/composite"分组

c# - 当焦点位于 TextBox 或 ComboBox 上时无法识别 Keydown

c# - 在Windows 8应用中转换字节数组以产生不同的音频声音

c# - WPF自定义控件中的"The type reference cannot find a public type..."错误

c# - 使用 Caliburn Micro 执行 MahApps.Metro HamburgerMenu

string - 如何在 C# 中覆盖 String 类中的函数

java - 正则表达式 - 允许 * 出现在字符串的开头和结尾,并且仅允许 *

c# - Global.asax 不工作

c# - IronPython 有时导入模块但不导入其他模块