using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FObjBase.Reflect { /// <summary> /// 注册 event 返回类型; /// 客户端,默认使用 Trigger_xxxx(xxxx为event名称),作为触发事件的函数,该函数的参数类型就是EventArgsType; /// </summary> public class PushAttribute : Attribute { public const string DefaultTriggerNameHeader = "Trigger_"; public Type EventArgsType; public string TriggerName; public PushAttribute(Type eventArgsType) { EventArgsType = eventArgsType; } public PushAttribute(Type eventArgsType, string triggerName) { EventArgsType = eventArgsType; TriggerName = triggerName; } } /// <summary> /// 注册远程调用返回类型; 回调函数名称只能是 AsyncCBHandler asyncDelegate, object asyncContext /// </summary> public class CallAttribute : Attribute { public Type ReponseType; public CallAttribute() { } public CallAttribute(Type reponseType) { ReponseType = reponseType; } } /// <summary> /// 注册 它的PropertyChanged 事件,且枚举它的子属性, /// 找到[PropertyPush] 递归 注册下去 /// </summary> public class PropertyPushAttribute : Attribute { } }