1

我有一个像这样工作的记录器:

 Dim logger = new Logger(Me)

这具有提取出以字符串格式提供的实体的一些信息的效果。不幸的是,我们的代码中有几个,Modules所以这自然是行不通的。

有没有办法获得Type模块或基本上使其适合,而无需将有关模块的信息作为字符串集合传递。

4

1 回答 1

1

System.Reflection.MethodBase.GetCurrentMethod().DeclaringType将返回Type当前模块的对象,但这与您在类中时的实际实例对象非常不同,因此您必须在Logger构造函数中以不同方式处理它。因此,例如,您可以使用重载来检测差异,如下所示:

 Public Class Logger
     Public Sub New(consumer As Type)
         Initialize(consumer)
     End Sub

     Public Sub New(consumer As Object)
         Initialize(GetType(consumer))
     End Sub

     Private Sub Iniatialize(consumer As Type)
         ' Extract info from type
     End Sub
 End Class
于 2013-07-29T13:14:28.123 回答