XmlSerializer构造函数报错:找不到System.Private.CoreLib.XmlSerializers程序集
我调用了以下构造函数:
var serializer = new XmlSerializer(typeof(List<Slot>));
但日志中出现了如下异常:
无法解析程序集 System.Private.CoreLib.XmlSerializers,版本=6.0.0.0,区域性=中性,公钥令牌=7cec85d7bea7798e,处理器架构=AMD64
我看到过一篇关于XmlSerializer构造函数抛出FileNotFoundException的帖子,但异常信息不完全一致,没法确定是不是同一个问题。用下面的代码可以规避这个异常,我推测是同一问题,但希望得到确认:
var serializer = XmlSerializer.FromTypes(new[] { typeof(List<Slot>) })[0];
我在网上找不到任何关于System.Private.CoreLib.XmlSerializers的相关资料。也试过XML序列化生成器工具,但因为代码找的不是myapplication.XmlSerializers,这个方案好像解决不了问题。
欢迎提供相关见解、思路或解释。
谢谢
System.IO.FileNotFoundException: 无法加载文件或程序集“System.Private.CoreLib.XmlSerializers, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, processorArchitecture=AMD64”。系统找不到指定的文件。
内部异常为null
堆栈跟踪:
在 System.Reflection.RuntimeAssembly.InternalLoad(ObjectHandleOnStack assemblyName, ObjectHandleOnStack requestingAssembly, StackCrawlMarkHandle stackMark, Boolean throwOnFileNotFound, ObjectHandleOnStack assemblyLoadContext, ObjectHandleOnStack retAssembly)
[托管到本地转换]
System.Private.CoreLib.dll!System.Reflection.RuntimeAssembly.InternalLoad(System.Runtime.CompilerServices.ObjectHandleOnStack assemblyName, System.Runtime.CompilerServices.ObjectHandleOnStack requestingAssembly, System.Runtime.CompilerServices.StackCrawlMarkHandle stackMark, bool throwOnFileNotFound, System.Runtime.CompilerServices.ObjectHandleOnStack assemblyLoadContext, System.Runtime.CompilerServices.ObjectHandleOnStack retAssembly) C#
System.Private.CoreLib.dll!System.Reflection.RuntimeAssembly.InternalLoad(System.Reflection.AssemblyName assemblyName, System.Reflection.RuntimeAssembly requestingAssembly, ref System.Threading.StackCrawlMark stackMark, bool throwOnFileNotFound, System.Runtime.Loader.AssemblyLoadContext assemblyLoadContext) 第330行 C#
System.Private.CoreLib.dll!System.Reflection.Assembly.Load(System.Reflection.AssemblyName assemblyRef) 第191行 C#
System.Private.Xml.dll!System.Xml.Serialization.TempAssembly.LoadGeneratedAssembly(System.Type type, string defaultNamespace, out System.Xml.Serialization.XmlSerializerImplementation contract) 未知
System.Private.Xml.dll!System.Xml.Serialization.XmlSerializer.XmlSerializer(System.Type type, string defaultNamespace) 未知
System.Private.Xml.dll!System.Xml.Serialization.XmlSerializer.XmlSerializer(System.Type type) 未知
内容的提问来源于stack exchange,提问作者Cervelle

