有没有一种方法可以让构造函数知道在实例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