我有一些代码引用一个外部DLL,它将在工厂加载。该DLL不应该被我的程序集直接引用,它将在运行时使用Assembly.Load()加载。如何调试使用反射从app.config加载的对象?
这一切都很好,但是当涉及到调试时,我希望能够逐步浏览库,就好像我使用类似new MyConcreteObject()
的引用它一样。
我知道我可以使用#if #endif在调试/发行版中以不同的方式编译代码 - 但我是否也可以在调试/发行版中附加引用?
如果我可以,那我该怎么做,我该怎么办呢?如果不是,如何应该我会去做这件事?
目前我有:
public class ObjectFactory
{
public IObject CreateObject(string objectType)
{
/* Code to load and return the concrete object specified in the app.config */
}
}
public class Program
{
public void Main(string[] args)
{
IObject obj = ObjectFactory.CreateObject("MyObject, MyObjectLibrary");
obj.DoYourStuff();
}
}
所以现在我想通过代码步骤为“DoYourStuff()”方法,我不希望有注释掉加载我的对象行和其替换为:
IObject obj = new MyObject();
,然后需要的项目引用指向MyObjectLibrary DLL,这将需要我删除参考,并取消了的CreateObject()调用,而是注释掉该行新的了具体对象。
有意义吗?
只要PDB文件可用,我就不必为调试工作做任何事情。 – David 2009-11-10 18:51:32