我想在C#應用程序中獲取有關Assembly的信息。我使用以下內容:獲得程序集上的信息
Assembly.GetCallingAssembly();
這可以完美地返回調用程序集的信息。
我想與其他應用程序共享此功能,所以我將它包含在我的類庫中的一個類中。
我在多個應用程序中引用此類庫。當我從我的應用程序調用此方法時,它將返回有關類庫而不是應用程序的信息。有沒有一種方法可以改變我的上面的代碼來返回Web應用程序程序集上的信息,同時仍然將代碼包含在類庫中?
我想在C#應用程序中獲取有關Assembly的信息。我使用以下內容:獲得程序集上的信息
Assembly.GetCallingAssembly();
這可以完美地返回調用程序集的信息。
我想與其他應用程序共享此功能,所以我將它包含在我的類庫中的一個類中。
我在多個應用程序中引用此類庫。當我從我的應用程序調用此方法時,它將返回有關類庫而不是應用程序的信息。有沒有一種方法可以改變我的上面的代碼來返回Web應用程序程序集上的信息,同時仍然將代碼包含在類庫中?
而不是讓類庫變得聰明,爲什麼你沒有調用者通過一個Assembly
作爲該方法的參數?所以當你從某個應用程序中調用方法時,你會通過Assembly.GetExecutingAssembly()
,類庫中的方法現在可以獲取實際調用者的程序集。
我不確定你在反射之上提供了什麼,但也許你正在抽象一個不需要抽象的工具。思考已經處理了這個,所以爲什麼不讓它做它的工作?
但是,如果這個API給你一些有用的信息(比如插入到你的數據庫等),那麼你的方法可能是有道理的。但我仍然建議您重構它:
Assembly
對象作爲參數,而不是試圖確定當前的組件。這樣可以提供更大的靈活性,以便在您想出一些代碼時想要獲得一堆程序集中的數據,並且仍然允許您傳遞當前程序集。 (注意:達林已經提出了這一點)
你可能會問一個問題太低。你想達到什麼目的? –