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

C# SGen无法为有效类型生成程序集,c#,xml-serialization,sgen,C#,Xml Serialization,Sgen,对于XmlSerializer类型,我有一个有效的 public class MyItem { public MyItem() { Values = new List<string>(); } public List<string> Values { get; private set; } } 从生成后事件调用的SGen为 "$(TargetFrameworkSDKToolsDirectory)SGen.exe" /Assembly:"$(Targ

对于XmlSerializer类型,我有一个有效的

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

  public List<string> Values { get; private set; }
}
从生成后事件调用的SGen为

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

这是SGen中的bug还是[某处]记录的行为?

这似乎很奇怪,因为链接的代码确实对我有用。
如果将列表更改为字符串[],则此选项无效。VS在做一些奇怪的事情吗?也许这可以让你的代码正常运行,但SGen无法使用相同的技巧?

可能是@HansPassant的重复,它不是重复。正如你们在我的帖子中看到的链接,我的代码工作正常,我的类型的序列化和反序列化工作正常。我在集合类型的属性上有一个私有setter。这对于XmlSerializer非常重要。我的问题是为什么SGen失败了,而不是为什么我的类型不能被序列化——因为它可以。嗯,这在本文中有介绍。它应该会再次失败。谢谢!看起来斯根又坏了:哦
"$(TargetFrameworkSDKToolsDirectory)SGen.exe" /Assembly:"$(TargetFileName)" /Type:"TestSGen.MyItem" /Force