我对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或[某处]记录的行为中的错误吗?
答案 0 :(得分:0)
这看起来很奇怪,因为链接的代码确实对我有用。
如果您将List<string>
更改为string[]
,则无效。 VS对collection initializers做了些什么奇怪的事吗?也许这允许您的代码正常运行,但SGen
无法访问相同的技巧?