代码之家  ›  专栏  ›  技术社区  ›  Elad Benda

XML反序列化程序(ISerialzable)

  •  1
  • Elad Benda  · 技术社区  · 14 年前

    我在C中有一个实现ISerialzable的类。

    我使用的是从该类的实例生成XML的XmlSerializer。

    我得到以下XML:

    <?xml version="1.0"?>
    <Configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <SessionConfiguration>
        <RemoteMachineName>HV-BENDA</RemoteMachineName>
      </SessionConfiguration>
      <SessionsCredentialsList>
        <CredentialsItem>
          <User>test0</User>
          <Password>Pa$$word1</Password>
        </CredentialsItem>
        <CredentialsItem>
          <User>test1</User>
          <Password>Pa$$word1</Password>
        </CredentialsItem>
        <CredentialsItem>
          <User>test2</User>
          <Password>Pa$$word1</Password>
        </CredentialsItem>
        <CredentialsItem>
          <User>test3</User>
          <Password>Pa$$word1</Password>
        </CredentialsItem>
        <CredentialsItem>
          <User>test4</User>
          <Password>Pa$$word1</Password>
        </CredentialsItem>
      </SessionsCredentialsList>
      <TIME_OUT />
      <LOCAL_USERS_NUM>5</LOCAL_USERS_NUM>
    </Configuration>
    

    稍后在代码中,我再次使用XmlSerializer对该XML文档进行反序列化。

    我得到以下错误:

    “XML文档(1,1)中有错误。”

    内部异常:

    “根级别的数据无效。第1行,位置1。“

    有人知道这可能是问题所在吗?

    万事如意

    2 回复  |  直到 14 年前
        1
  •  0
  •   Elad Benda    14 年前

    奇怪的是,只使用流并没有起作用。使用streamreader和streamwriter解决了这个问题。

    谢谢

        2
  •  0
  •   Boris Modylevsky    14 年前

    使用美元符号可能会导致问题。试用使用 &#36; 相反。