1

私は XmlSerializer タイプに対して有効です:

public class MyItem
{
  public MyItem() {
    Values = new List<string>();
  }

  public List<string> Values { get; private set; }
}

正常にシリアライズおよびデシリアライズされました (完全なコード例はこちらhttp://ideone.com/s2PvSB )。しかし、この型の .XmlSerializers.dll を生成できません。SGen は次のエラーで失敗しました:

Microsoft (R) Xml Serialization support utility
[Microsoft (R) .NET Framework, Version 4.0.30319.33440]
Copyright (C) Microsoft Corporation. All rights reserved.
EXEC : error : Unable to generate a temporary class (result=1).
EXEC : error CS0200: Property or indexer 'TestSGen.MyItem.Values' cannot be assigned to -- it is read only

PostBuild イベントから呼び出される SGen

"$(TargetFrameworkSDKToolsDirectory)SGen.exe" /Assembly:"$(TargetFileName)" /Type:"TestSGen.MyItem" /Force

それは SGen のバグですか、それとも [どこかで] 文書化された動作ですか?

4

1 に答える 1

0

リンクされたコードが実際に機能するため、これは奇妙に思えます。List<string>に変更すると機能しませんstring[]VS はコレクション初期化子で奇妙なことをしていますか? おそらく、コードは正常に実行できますがSGen、同じトリックにアクセスできませんか?

于 2013-11-12T19:09:04.930 に答える