如何使用CodeDOM / T4 / PostSharp /其他用c#自动创建(例如)单例
发布时间:2020-12-15 05:37:14 所属栏目:百科 来源:网络整理
导读:我正在寻找一种自动生成(例如)单身的方法,例如: [SingletonPatternAttribute]public class Logger { public void Log (string txt) { /* do logging... */ }} 作为消除样板的尝试. 有人知道如何实现吗?我知道有CodeDOM,Reflection.Emit,T4等.此外 – 有(最
我正在寻找一种自动生成(例如)单身的方法,例如:
[SingletonPatternAttribute] public class Logger { public void Log (string txt) { /* do logging... */ } } 作为消除样板的尝试. 有人知道如何实现吗?我知道有CodeDOM,Reflection.Emit,T4等.此外 – 有(最值得注意的)PostSharp,但我很高兴看到上述挑战的真正解决方案. 例如,我可以在构造函数中执行代码生成,但编译时间显然要好得多. 编辑: 这里的问题不是Singleton,而是C#中的生成/元编程 – 如何以最佳方式创建代码/消除样板 – 有什么样的具体例子? 解决方法
我为我的日志记录类做了这件事,使用IOC容器并在映射/绑定对象时添加范围.例如,使用Ninject,绑定将是:
Bind<ILogger>().To<Logger>().InSingletonScope(); 然后在我想要使用我的单例记录器的类中,我可以使用属性注入: [Inject] public ILogger Logger { get; set; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |