Datetime 使用using属性记录方法名称、输入参数、日期和时间

Datetime 使用using属性记录方法名称、输入参数、日期和时间,datetime,logging,methods,attributes,Datetime,Logging,Methods,Attributes,我只想创建一个继承自属性类的类,在项目中的每个方法中放置属性标记,以编写方法名、包含此方法的类名、调用日期和时间、参数和方法的返回(如果返回某些内容) 我在SQL Server中创建了一个表,该表将接收所有日志信息并对其进行签名 我已经完成了所有与我的数据库交互的方法和查询(日期和时间方法除外),唯一的问题是我不知道如何使用属性方法来获取我提到的信息 如果您希望使用属性进行日志记录,您可以使用PostSharp在编译代码期间修改IL,并将日志记录代码放在放置从PostSharp的属性(方面)(A

我只想创建一个继承自属性类的类,在项目中的每个方法中放置属性标记,以编写方法名、包含此方法的类名、调用日期和时间、参数和方法的返回(如果返回某些内容)

我在SQL Server中创建了一个表,该表将接收所有日志信息并对其进行签名


我已经完成了所有与我的数据库交互的方法和查询(日期和时间方法除外),唯一的问题是我不知道如何使用属性方法来获取我提到的信息

如果您希望使用属性进行日志记录,您可以使用PostSharp在编译代码期间修改IL,并将日志记录代码放在放置从PostSharp的属性(方面)(AOP)派生的自定义属性的方法之前/之后

我认为您不能仅通过使用自定义属性来实现这一点,因为据我所知,只有在调用
Type.GetCustomAttributes()
时才会实例化自定义属性。因此,您可能需要做一些反射业务来通过属性发送日志,我不推荐这样做


您可以通过第三方工具简单地使用属性,而不是属性。您可以使用的拦截器。

您也可以使用温莎城堡中的拦截器使用属性登录

为此,您可以创建一个继承自
IInterceptor
的类,将其注册到您的容器中,然后可以向任何要添加日志行为的类或方法添加属性

我在这里写了一个解释:

我在GitHub上创建了一个示例,展示了它是如何完成的:

可能与重复