C# 是否可以从我的AppDomain导出dll定义?
我的代码库中有我不熟悉的代码,我希望用测试用例清理和锁定这些代码 我面临的问题是 A) 编写它的开发人员已经不在公司了,而且看起来没有使用标准,也没有进行代码审查,所以甚至没有评论(变量名为A、b和c,函数长200行……啊) B) 写这篇文章的开发者有一种见仁见智的心态(即“嘿,我刚刚学到的这个新功能真的很酷,我想我会滥用它的”) C) 这是一个令人难以置信的混乱、没有文档记录的任务,重写它的功能是一项非常重要的任务 这就是说,代码是意大利面条我已经缩小了一个部分,使大量的反射。发射调用动态作出一个dll来执行这项工作。要完成手头的任务,这是难以置信的,但请参见第B点) 我有一半的人想说“忘了这一点”,然后重写代码,这样我就可以通过测试将其锁定。另一半人想挽救那里的东西,因为我知道它是有效的,我的客户每天都在使用代码,这并不容易 有没有办法做到以下几点C# 是否可以从我的AppDomain导出dll定义?,c#,reflection,C#,Reflection,我的代码库中有我不熟悉的代码,我希望用测试用例清理和锁定这些代码 我面临的问题是 A) 编写它的开发人员已经不在公司了,而且看起来没有使用标准,也没有进行代码审查,所以甚至没有评论(变量名为A、b和c,函数长200行……啊) B) 写这篇文章的开发者有一种见仁见智的心态(即“嘿,我刚刚学到的这个新功能真的很酷,我想我会滥用它的”) C) 这是一个令人难以置信的混乱、没有文档记录的任务,重写它的功能是一项非常重要的任务 这就是说,代码是意大利面条我已经缩小了一个部分,使大量的反射。发射调用动态作出
foreach(Assembly a in AppDomain.CurrentDomain.GetAssemblies())
{
if(IS_Assembly_IM_LOOKING_FOR(a))
{
SaveToFile(a, @"C:\Temp\MyAssembly.dll")
}
}
这样我就可以拥有一个“锁定”版本的程序集,并且可以独立地为它编写单元测试,并且有0%的几率通过意外修改动态创建它的代码来破坏它