如何将字符串从XML序列化为Regex
类型的类属性?
这是XML文件中的元素:
<IncludeRegex><![CDATA[#include\\s*\\\"\\s*(?<FileName>.+\\\\*\\.*.+)\\s*\\\"]]></IncludeRegex>
<IncludeDefineRegex><![CDATA[#define\s*[A-Za-z_0-9]+\s*\""\s*(?<FileName>.+\.[a-zA-Z0-9]+)\s*\""]]></IncludeDefineRegex>
在我进行序列化的类(class)中,我具有以下属性:
public Regex IncludeRegex { get; set; }
public Regex IncludeDefineRegex { get; set; }
该类的其余部分可以毫无问题地进行序列化,但是
Regex
属性无法序列化。一种选择是拥有替代属性:public string IncludeRegex { get; set; }
public string IncludeDefineRegex { get; set; }
[XmlIgnore]
public Regex IncludeRegexActual { get; private set; }
[XmlIgnore]
public Regex IncludeDefineRegexActual { get; private set; }
并在IncludeRegex和IncludeDefineRegex的设置程序中或在init函数中设置这些属性。这行得通,但是如果没有重复的属性,我可以这样做吗?
最佳答案
我不认为您可以使用常规XML序列化来做到这一点,您必须实现IXmlSerializable来直接控制序列化。
关于c# - 如何使用.NET XML序列化序列化正则表达式类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6205575/