次の方法で共有


Web サイト サポートの属性

Visual Studio Web サイト プロジェクトを拡張して、Web プログラミング言語のサポートを提供できます。 この言語は Visual Studio に自身を登録して、その言語が選択されたときに [新しい Web サイト] ダイアログ ボックスにプロジェクト テンプレートを表示できるようにする必要があります。

IronPython Studio のサンプルには、Web サイト サポートが含まれています。 このサンプルには、IronPython を新しい Web プロジェクトの分離コード言語として登録するための次の属性クラスが含まれています。

WebSiteProjectAttribute

この属性は、言語プロジェクトに適用されます。 これにより、[新しい Web サイト] ダイアログ ボックスの [言語] 一覧にある Web プログラミング言語の一覧にその言語が追加されます。 たとえば、次のコードでは IronPython を一覧に追加します。

[WebSiteProject("IronPython", "Iron Python")]
public class PythonProjectPackage : ProjectPackage

この属性ではまた、テンプレート フォルダーを指すテンプレート パスを設定することもできます。 テンプレート フォルダーの場所の詳細については、「Web サイト サポートのテンプレート」を参照してください。

WebSiteProjectRelatedFilesAttribute

この属性は、言語プロジェクトに適用されます。 これにより、Web サイト プロジェクトでは、ソリューション エクスプローラーで、あるファイルの種類 (関連) を別のファイルの種類 (プライマリ) の下に入れ子にすることができます。

たとえば、次のコードでは、IronPython の分離コード ファイルが .aspx ファイルに関連していることを指定します。 IronPython Web サイト ソリューションで新しい .aspx Web ページが作成されると、新しい .py ソース ファイルが生成され、.aspx ページの子ノードとして表示されます。

[WebSiteProjectRelatedFiles("aspx", "py")]
public class PythonProjectPackage : ProjectPackage

ProvideIntellisenseProviderAttribute

この属性は、言語プロジェクト パッケージに適用されます。 これにより、その言語の IntelliSense プロバイダーが選択されます。

たとえば、次のコードでは、IVsIntellisenseProject を実装する PythonIntellisenseProvider のインスタンスが、言語サービスを提供するために必要に応じて作成される必要があることを指定します。

[ProvideIntellisenseProvider(typeof(PythonIntellisenseProvider), "IronPythonCodeProvider", "Iron Python", ".py", "IronPython;Python", "IronPython")]
public class PythonPackage : Package, IOleComponent

IVsIntellisenseProject の実装では、参照を処理し、コードを含む Web ページが要求されているが、キャッシュされていない場合に言語コンパイラを呼び出します。

関連項目