System.Xml.Serialization
命名空间中的XML序列化程序使用 CodeDOM 动态生成XmlSerializationReader
和XmlSerializationWriter
类。
我想在反汇编程序中查看这些类。
序列化程序在哪里存储具有此动态生成代码的临时程序集文件?我一直试图在Reflector的最后30分钟找到它,但无济于事。
我从Reflector收集的是它将它存储在某个临时目录中。我抬头看了 C:\ temp ,但那里没有.dll。我查了 C:\ tmp 并且有些PNG文件似乎不是真正的PNG文件,而是Windows生成的一些二进制文件,用于存储临时数据。
如果您知道,请告诉我。
答案 0 :(得分:0)
好吧,我查找的关于这个问题的十几个左右的线索揭示了答案。
这个帖子说是文件夹 C:\ Windows \ ServiceProfiles \ NetworkService \ AppData \ Local \ Temp
但是从这个帖子的原始问题中发布的堆栈跟踪看来,可以通过调用System.IO.Path.GetTempPath()
找到的windows环境的临时文件夹是dll的保存位置。
答案 1 :(得分: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'.