2010-05-06 53 views
2

我爲Revit Structure API創建了許多加載項。每個工具都必須具有實現接口IExternalCommand的類。如何根據C#中缺少的屬性生成編譯器錯誤?

在Revit的最新版本,爲你的工具工作,你需要有一個實現該接口的類的兩個屬性:

[再生(RegenerationOption.Manual) [交易(TransactionMode.Automatic) ]

括號內的值可以更改,但必須有一些值。通常我發現自己忘記了放置這些屬性,然後在運行時崩潰了。在Visual Studio 2010中是否有任何方法來添加編譯器警告或錯誤,指出如果您的類實現了該接口,它必須具有這兩個屬性?如果有幫助的話,我會重新獲得幫助。

任何人都可以指向正確的方向嗎?

+0

非常相近:http://stackoverflow.com/questions/19454/enforce-attribute-decoration-of-classes-methods – Aaronaught 2010-05-06 01:21:27

+0

排序,但我在編譯器錯誤後,此代碼不在單元測試(由於各種原因) – RodH257 2010-05-06 05:21:15

回答

4

不幸的不是。 (我不知道ReSharper的,雖然)

如果你有VS2010旗艦版,你可以寫一個自定義代碼分析規則。

2

不會在編譯的時候,但我認爲它會很容易與反思。

我建議使用反射來檢查你的編譯的程序集,找到與指定接口的所有類一個單獨的程序,然後檢查這些類的屬性,很快返回一個不錯的友好的錯誤消息。

你最好還是要運行這個程序編譯程序後,但是取決於你的IDE,你可以將其設置爲一個生成後步驟。