私はこのコードでUsercontrolにメソッドを持っています
public bool GetActiveDocument(ref EnvDTE.Document doc)
{
try
{
var dte = (DTE2)GetService(typeof(SDTE));
doc = dte.ActiveDocument;
if (doc == null)
{
MessageBox.Show("There isn't any file open in the Code Editor");
return false;
}
else return true;
}
catch (Exception)
{
MessageBox.Show("There was a problem getting the actual file, verify if it is open");
return false;
}
}
このメソッドを、Visual Studio とアプリケーションの間の仲介者として機能する「プロキシ」クラスに移動したいと考えています。問題は、GetService がコントロール内で呼び出された場合にのみ、アクティブなドキュメントを正しく返すことです。そのメソッドを Proxy クラスに移動すると、GetService に定義がありません。このメソッドは ComponentModel.Component から来ていると検索したので、Proxy クラスを Component から派生させました。すべてが正常にコンパイルされますが、常にアクティブなドキュメントを要求すると例外が発生します。GetService() メソッドの仕組みがよくわかりません。これを手伝ってください。