如何使用自定义属性我的c#项目



我想在我的n层项目中使用自定义属性。对于

-缓存--日志记录-验证-异常

首先,您应该搜索AOP。这是的某种开发方法

面向方面编程(AOP(是一种编程范式,旨在通过允许交叉关注点的分离来提高模块性维基百科

这并不像你想象的那么简单,在C#中你必须使用一些第三方库。

我建议从Advice先生开始,这会对你有所帮助。

编写自定义属性看起来有点像这样:

using System;
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method)]
public class LogAttribute : Attribute
{
public bool _loggingEnabled;
public LogAttribute(loggingEnabled)
{
_loggingEnabled = loggingEnabled;
}
}

用法示例:

[Log(true)]
public class SampleClass
{
}

如果你需要进一步澄清,如果你分享更多关于你对属性的预期使用,我可以澄清更多。例如,我不确定您是否希望您的logging属性为您提供一种显式声明该类/结构是否会被记录的方法,但这就是我决定演示的方式。此外,请注意,您可以通过属性类声明中的AttributeUsage属性将其应用于属性和各种其他成员。我希望这能有所帮助。

更新:

保存方法示例:

[Log(true)]
public void Save(Company company)
{
_context.Save();
}

然后,您将使用静态方法Attribute.GetCustomAttribute(MemberInfo element, Type attributeType)来检索存储在该属性中的信息。由于在这种情况下,您可能希望在许多地方使用日志记录,您可以在应用程序的其他地方编写另一个方法(很可能也是静态的(,该方法看起来像这样(有关更多信息,请参阅下面的System.Reflection参考链接(。

public static void Log(MemberInfo element)
{
LogAttribute attribute = Attribute.GetCustomAttribute(element, typeof(LogAttribute);
if (attribute._loggingEnabled)
{
// Create log file and add information from here.
}
}

属性参考

反射参考

相关内容

  • 没有找到相关文章

最新更新