2008-11-12 50 views
2

當我們的應用程序使用XML 串化器時,我們遇到了問題,當我們以包含 日文字符的用戶名登錄時,使用用戶名和日語字符的.NET XML串化器

我們已經準備了一個測試自身串行一個示例應用程序:

   TestClass myClass = new TestClass(); 
       myClass.MyString = "Hello World!"; 

       using (MemoryStream stream = new MemoryStream()) 
       { 
        XmlSerializer serializer = new XmlSerializer(
          typeof (TestClass)); 
        serializer.Serialize(stream, myClass); 
       } 

       MessageBox.Show("Serialization Complete!"); 

凡TestClass中被定義爲:

[Serializable] 
    public class TestClass 
    { 
     public string MyString { get; set; } 
    } 

當序列化()被調用時,下面的異常報告:

System.InvalidOperationException:無法生成臨時類 (結果= 1)。 錯誤CS0016:無法寫入輸出文件 'c:\ Users \ ?????? \ AppData \ Local \ Temp \ qas_8hjs.dll' - '目錄名稱爲 無效。 '

注意'?????'在哪裏顯示用戶名。

我們已經使用基於英文字符集名稱 的用戶對此進行了測試,這很好。

是否有我們忽略設置(例如任何環境 或AppDomain設置?)或者這是XML序列化程序中的錯誤?

我知道這是非常專業,但任何見解任何將不勝感激!

回答

1

你可以嘗試使用SGEN來避免它必須在運行時創建dll嗎?

但是,我會試圖將它記錄爲connect上的一個錯誤。

注意,SGEN做法將不利於網絡的服務器:

這些生成的組件不能 使用上的Web服務 的服務器端。此工具僅適用於Web 服務客戶端和手動 序列化方案。