在我們的應用程序中,我們需要以propertyName,propertyValue,propertyType的形式將對象的屬性保存到同一個數據庫表中,而不管對象的類型如何。我們決定使用XamlWriter來保存給定對象的所有屬性。然後,我們使用XamlReader加載創建的XAML,並將其重新轉換爲屬性的值。這在大部分情況下工作正常,除了空字符串。 XamlWriter將保存一個空字符串,如下所示。XamlReader.Parse在空字符串上拋出異常
<String xmlns="clr-namespace:System;assembly=mscorlib" xml:space="preserve" />
的XamlReader看到這個字符串,並試圖創建一個字符串,但找不到在String對象使用一個空的構造,所以它拋出一個ParserException。
我能想到的唯一解決方法是,如果它是空字符串,則不會實際保存屬性。然後,當我加載屬性時,我可以檢查哪些不存在,這意味着它們將是空字符串。
有沒有這方面的一些解決方法,或者是否有更好的方法來做到這一點?