1

命名空间中的 XML 序列化程序使用CodeDOMSystem.Xml.Serialization动态生成XmlSerializationReaderXmlSerializationWriter类。

我想看看反汇编程序中的这些类。

序列化程序将具有此动态生成代码的临时程序集文件存储在哪里?过去 30 分钟,我一直试图在 Reflector 中找到它,但无济于事。

我从 Reflector 收集到的只是它将它存储在某个临时目录中。我查了C:\temp但那里没有 .dll。我查找了C:\tmp,那里有一些 PNG 文件,它们看起来不是真正的 PNG,而是 Windows 生成的一些用于存储临时数据的二进制文件。

如果你知道,请告诉我。

4

2 回答 2

0

好吧,我查到的与这个问题有关的十几个线程中的这两个线程揭示了答案。

该线程说它是文件夹C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp

http://snavin.wordpress.com/2013/04/01/xmlserializer-is-running-does-not-have-sufficient-permission-to-access-the-temp-directory/

但是从这个线程的原始问题中发布的堆栈跟踪来看,可以通过调用找到的windows环境的临时文件夹似乎System.IO.Path.GetTempPath()是保存dll的位置。

ASP.NET 访问临时目录被拒绝

于 2013-12-02T15:02:51.727 回答
0

有一个简单的方法:使用sgen.exe自己生成必要的程序集。

在我的机器上看起来像:

C:>"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\sgen.exe" "C:\Projects\BIN\My.dll"
Microsoft (R) Xml Serialization support utility
[Microsoft (R) .NET Framework, Version 4.6.1055.0]
Copyright (C) Microsoft Corporation. All rights reserved.
Serialization Assembly Name: My.XmlSerializers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
Generated serialization assembly for assembly c:\projects\bin\My.dll --> 'c:\projects\bin\My.XmlSerializers.dll'.
于 2017-06-01T11:28:24.737 回答