我正在使用自定义属性将元数据附加到类方法。在运行时,这些属性及其参数将被验证。如果属性(或属性参数)无效,是否有共识应该抛出哪个现有的异常类?
例如,给定一个以实例方法名称作为构造函数参数的属性:
例如,给定一个以实例方法名称作为构造函数参数的属性:
public class StateAttribute : Attribute {
public string ParentState { get; set; }
public StateAttribute() {}
}
当在类中使用时:
public StateMachine {
[State]
public Result TopState(Event e) { ... }
[State( ParentState = "TopState" )]
public Result NestedState(Event e) { ... }
}
一个初始化程序将遍历所有已应用State
属性的方法,并将ParentState
名称解析为实际的MethodInfo
。如果(例如由于拼写错误)找不到该名称的方法,则需要抛出异常。由于我不想发明新的异常类,你会建议使用哪个异常类?
而且只是为了确保,在编译时没有验证方法名称的方法,对吗?