# 源生成器
MMF开发效率高的一个特点就是采用了大量的源生成器来处理重复代码,而与源生成器交互的主要方法是通过添加MMF提供的一系列特性Attribute,下面介绍MMF中的特性
# MapName
MapName特性用于给类添加Names和ClassRef静态属性,它可以自动将中间名转为混淆名,且同时支持点格式和斜杠格式
如果MapName修饰的是嵌套类,可以只填写$后的部分,源生成器会自动处理
如果MapName修饰的是非混淆类,可以在MapName的第二个参数(可选参数,默认true)处填写false,这样MapName就不会通过映射器获取混淆名
# Signature
Signature特性用于补全方法和属性实现
给partial方法和属性添加Signature时,源生成器会自动解析方法属性的参数列表,返回值等,并生成对应的实现
如果不用partial标注,则表示你只想利用源生成器获取方法的MethodID,这种情况下应该将方法改为private,方法体为throw NotSupportedException();
Signature同样有第二个参数,可以将其改为false阻止使用映射器
public static final字段对应C#中的静态只读属性,由于它是final的,源生成器将会在静态构造函数中缓存它而不是反复获取,所以它的声明为{ get; private set; },前提是它是一个对象,如果它是基础类型,请使用const并将Signature特性注释掉
← 首页