我正在爲C#中的大型遊戲項目製作保存/加載系統。如何驗證保存/加載系統的完整性
每個需要保存的類都實現了一個方法DoSnapshot()
。
在該方法中,程序員必須爲類中的每個字段調用函數 - 如果應該保存foo
,則爲DoSnapshot(foo)
;如果不應該,則爲Ignore(foo)
。
我對DoFloat,DoString等許多基本類型以及複雜類型的版本都有DoSnapshot方法。
我有100個類,該項目仍在開發中。
是否可以添加某種驗證,即每個類中的所有字段都用於Snapshot()
或Ignore()
調用中?省略字段會導致錯誤。 驗證可以是運行時或編譯時。我只想在開發過程中使用它,它不會被髮布給用戶。
你看了寫在自定義FXCop規則? http://blogs.msdn.com/b/codeanalysis/archive/2010/03/26/how-to-write-custom-static-code-analysis-rules-and-integrate-them-into-visual-studio- 2010。aspx – JoshBerke
不...無論如何,我們正在使用Visual Studio Express 2010,我不認爲它是受支持的。 –
不是沒有其他工具可以執行靜態代碼分析,並允許您添加自定義規則。我認爲你最好的選擇是提供一個Base DoSnapshot方法,這樣開發人員只需要用屬性標記......你可以輕鬆編寫一個例程,以確保每個需要保存的對象都具有標記爲必需或忽略的所有屬性。開發人員不必實現dosnapshot方法:-) – JoshBerke