我有一些代碼引用一個外部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