SGen无法为有效类型生成程序集

时间:2013-11-12 18:21:03

标签: c# xml-serialization sgen

我对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

SGen从PostBuild事件中调用

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

这是SGen或[某处]记录的行为中的错误吗?

1 个答案:

答案 0 :(得分:0)

这看起来很奇怪,因为链接的代码确实对我有用。 如果您将List<string>更改为string[],则无效。 VS对collection initializers做了些什么奇怪的事吗?也许这允许您的代码正常运行,但SGen无法访问相同的技巧?