日本語の文字を含むユーザー名を持つユーザーとしてログインすると、アプリケーションが 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; }
}
Serialize() が呼び出されると、次の例外が報告されます。
System.InvalidOperationException: 一時クラスを生成できません (結果 = 1)。error CS0016: 出力ファイルに書き込めませんでした 'c:\Users\??????\AppData\Local\Temp\qas_8hjs.dll' -- 'ディレクトリ名が無効です. '
「???????」に注意してください ユーザー名が表示される場所。
英語の文字セット ベースの名前を持つユーザーを使用してこれをテストしましたが、問題ありません。
設定を怠ったものはありますか (たとえば、環境や AppDomain の設定など)、それとも XML シリアライザーのバグですか?
私はこれがかなり専門的であることを知っていますが、どんな洞察でも感謝します!