2013-04-24 30 views
0

在ReSharper中,如果我在一個類上使用「Implement Interface」動作,它會創建一個名爲Implementation of IInterface的區域。但是,如果我手動實現接口,然後運行代碼清理,它會將我的接口成員封裝在名爲IInterface Members的區域中。ReSharper接口命名

爲什麼它使用兩種不同的命名約定?如果有辦法來標準化呢?

回答

1

根據R#文檔爲Reordering Type Members,代碼清理應在指定區域重新排序,敷實現的接口:

R# ImplementsInterface XML Rules

這個XML代碼匹配實現接口的成員,圍繞着 他們與地區和排序的實施接口的名稱。 $ {ImplementsInterface}變量包含正在實現的接口 的名稱。如果你不想在 接口實現上插入區域,刪除組標籤,ReSharper會根據 實現的接口名稱對成員進行排序。

檢查您的設置,看看您是否可能重寫了默認行爲。另一方面,我沒有親自測試清理代碼,重新排序和區域打包,所以這是一個最好的猜測。但是,希望它能指引您朝着正確的方向發展。

編輯
詳細審查文件,並探索所有R·可編輯模板之後,我不認爲這是可以編輯該地區的標籤的文本的方式。

我反編譯JetBrains.ReSharper.Feature.Services.CSharp.dll,發現了我認爲的是該地區的標籤的來源:

  • 命名空間:JetBrains.ReSharper.Feature.Services.CSharp.Generate
  • 類:CSharpGeneratorContext
  • 方法:InsertWithRegionsCSharpGeneratorContext

這兩種方法都將字符串"Implementation of " + <some code>嵌入在DLL中,所以它的應用程序耳朵你將無法編輯默認文本。

+0

這就是我所擁有的那個'IInterface Members'區域來自的地方。我其實更喜歡這個措辭。到目前爲止,我正試圖弄清楚IInterface的實現來自哪裏。現在,我想出瞭如何禁用該區域,但我更願意自定義該區域的標籤。 – cadrell0 2013-04-24 19:57:42

+0

見編輯;它看起來默認文本嵌入在R#dll的一箇中。 – 2013-04-25 00:01:13

+0

感謝您的好消息。 – cadrell0 2013-04-25 04:17:51