您可以通過執行IRunConfig
和IRunConfigProvider
來擴展可用的運行配置類型。
IRunConfigProvider
類需要標記爲[ShellComponent]
,並且可以從RunConfigProviderBase
派生出抽象基類。你可以指定一個名字,例如類型標識符,例如"Executable"
。 "exe"
和圖標ID。還有CreateNew方法,它將創建一個IRunConfig
類的新實例,這個實例大部分都是未配置的。
IRunConfig
接口不需要標記爲組件,並且還應該從RunConfigBase
派生出來 - 請參閱dotPeek中的RunConfigExe
以查看如何實現的示例。您應該重寫Execute
以實際運行您需要運行的任何內容。您可以使用傳入的RunConfigContext
類來實際執行ProcessStartInfo
或IProject
中的進程 - 這將通過運行進程,調試它或其他內容(例如代碼覆蓋或分析)來執行。
爲.exe,這很簡單,只要:
public override void Execute(RunConfigContext context)
{
context.ExecutionProvider.Execute(GetStartInfo(context), context, this);
}
但是對於更復雜的例子,看看RunConfigMethod.Execute
,使用它自己的獨立的發射器的可執行文件,並通過在命令行參數來加載正確的組裝並執行給定的靜態方法。
設置通過ReadSpecific
/SaveSpecific
實現,您可以使用CreateEditor提供編輯器視圖模型。你需要一個設置類,是這樣的:
[SettingsKey(typeof (ConfigSettings), ".exe config")]
public class ExeSettings
{
[SettingsEntry(null, "Path to .exe")] public string Executable;
[SettingsEntry(null, "Working directory")] public string WorkingDirectory;
[SettingsEntry(null, "Command line arguments")] public string Arguments;
}
編輯者的觀點被顯示在一個對話框,ReSharper的控件WPF控件提供。該視圖需要使用[View]
屬性進行修飾,並且必須執行IView<T>
,其中T
是從CreateEditor
返回的具體類。這就是ReSharper如何找到由CreateEditor
返回的視圖模型的視圖。再次,在dotPeek中查看RunConfigMethodView
,以瞭解正在發生的事情(如果您查看資源,您將能夠看到XAML本身)。
非常感謝馬特!真的很有幫助。 – dseferlis
已經上傳到Resharper插件和github上。再次感謝。 – dseferlis