XmlSerializer,base64编码一个String成员

Ano*_*nym 5 c# xml-serialization

考虑一个简单的案例

public class Test {
  public String myString;
}
Run Code Online (Sandbox Code Playgroud)

有什么办法可以告诉XmlSerializer在序列化时对base64编码myString吗?

Chr*_*s S 4

你可以简单地将它设置为一个byte[]属性,它会自动进行 Base64 编码:

public class Test {
  public byte[] MyProperty {get;set;}

  public void SetMyProperty(string text)
  {
      MyProperty = System.Text.Encoding.Unicode.GetBytes(text);
  }
}

Test test = new Test();
test. SetMyProperty("123456789123456789");
Run Code Online (Sandbox Code Playgroud)

输出:

<MyProperty>MQAyADMANAA1ADYANwA4ADkAMQAyADMANAA1ADYANwA4ADkA</MyProperty>
Run Code Online (Sandbox Code Playgroud)

(尝试在这里解码)

不幸的是,(据我所知)没有办法将 MyProperty 设为私有并且仍然在System.Xml.Serialization.