3
我使用自定義屬性將元數據附加到類方法。在運行期間,這些屬性及其參數將得到驗證。是否有一個共識:如果一個屬性(或屬性參數)證明是無效的,那麼現有的異常類應該拋出什麼?拋出無效屬性或屬性參數有什麼異常?
例如,假設以一個實例方法名稱作爲其構造函數的參數屬性:
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
。如果(例如,由於錯字)沒有找到具有該名稱的方法,則需要拋出異常。既然我不想發明新的異常類,你會建議哪一個?
而且可以肯定的是,在編譯期間無法驗證方法名稱,對吧?
是的,自定義的異常可能是要走的路。我的困境是,這是在運行時檢測到的編譯時錯誤... – 2011-01-19 17:07:53