有沒有一種方法可以讓構造函數知道在實例f構造的哪個類型中,該對象是在內部構造的?例如,如果你查看下面的代碼,類型是否可以放在記錄器類中的反射的某個地方,告訴實例的創建位置?而不是硬編碼的信息。C#的構造函數和構造對象的類型
public class MyCollection
{
private static readonly ILog logger = LogManager.GetLogger("Entities : MyCollection");
}
相反,做事情的地方,我可以只叫
LogManager.GetLogger();
和LOG日誌管理中,我會是什麼類型它是內初始化的構造函數中知道嗎?這樣它可以一般使用,並在每個類實例上。
它只需要類型名稱?你將如何處理構造函數中的類型?施工後,根據創建它的類型,記錄器的做法會有所不同? – CoderDennis
NLog的'LogManager.GetCurrentClassLogger()'確實如此(你是否使用NLog?:P),檢查它的[源代碼(在LogManager.GetClassFullName()方法中定義)](https://github.com/NLog/ NLog/blob/master/src/NLog/LogManager.cs#L379),它使用Reflection獲取調用者的名稱。 – KurzedMetal
您應該使用System.Reflection – billybob