“有什么行业吗?”;标准;用于c#中的高级元编程?
在不同的项目中,我时不时地会遇到C#项目中的元编程情况,这种情况无法用泛型来解决,并且会受益于更强大的元编程工具。我通常采用的解决方案要么是解决反射问题,要么是采用C++/cli,要么是引入自定义xml/xslt编译器步骤 这是否反映了C#社区通常采用的方法,或者是否有一种值得采用的方法,例如广泛使用的第三方预处理器,我不知道“有什么行业吗?”;标准;用于c#中的高级元编程?,c#,.net,metaprogramming,preprocessor,C#,.net,Metaprogramming,Preprocessor,在不同的项目中,我时不时地会遇到C#项目中的元编程情况,这种情况无法用泛型来解决,并且会受益于更强大的元编程工具。我通常采用的解决方案要么是解决反射问题,要么是采用C++/cli,要么是引入自定义xml/xslt编译器步骤 这是否反映了C#社区通常采用的方法,或者是否有一种值得采用的方法,例如广泛使用的第三方预处理器,我不知道 我不是在要求产品推荐,我是在问一个针对这个常见问题的公认的通用解决方案。“不,没有”可能是正确的答案。不,没有。主要是因为这是一个边缘领域。不是说这没用,只是说90%到9
我不是在要求产品推荐,我是在问一个针对这个常见问题的公认的通用解决方案。“不,没有”可能是正确的答案。不,没有。主要是因为这是一个边缘领域。不是说这没用,只是说90%到95%的人根本不做 有两种技术被“广泛”使用(部分原因是某些.NET工具(主要是在EntityFramework中)确实使用了它们):
因此,绝对没有标准。这是一个公认的差距,多年来一直被搁置,因为.NET有非常好的运行时反射/emit API,允许运行时元编程解决方案;但是,这有多个问题,包括:
它可能是您正在寻找的“行业标准”,但它还处于初级阶段 在.NET中使用元编程有很多方法
- 编译时工具:PostSharp、Fody等
- 运行时工具:Castle DynamicProxy、Unity拦截等
- 代码生成工具:T4,源代码生成器
也考虑切换到不同的编程语言,例如Nemerle。它是一种支持宏的语言。在我个人看来,这是元编程的理想选择。
广泛使用的第三方预处理器
-?也许?