IVsDataSourceSpecializer.GetAssembly メソッド

特定の DDEX のデータ ソースの Assembly の対応する表示に、プロバイダー固有のアセンブリの文字列を解決します。

名前空間:  Microsoft.VisualStudio.Data.Core
アセンブリ:  Microsoft.VisualStudio.Data.Core (Microsoft.VisualStudio.Data.Core.dll 内)

構文

'宣言
Function GetAssembly ( _
    source As Guid, _
    assemblyString As String _
) As Assembly
Assembly GetAssembly(
    Guid source,
    string assemblyString
)
Assembly^ GetAssembly(
    Guid source, 
    String^ assemblyString
)
abstract GetAssembly : 
        source:Guid * 
        assemblyString:string -> Assembly 
function GetAssembly(
    source : Guid, 
    assemblyString : String
) : Assembly

パラメーター

  • source
    型 : System.Guid
    DDEX のデータ ソースの識別子。
  • assemblyString
    型 : System.String
    プロバイダー固有のアセンブリの文字列。

戻り値

型 : System.Reflection.Assembly
アセンブリを表す Assembly のオブジェクトは指定されたアセンブリの文字列が見つかった場合、指定した DDEX のデータ ソースに解決済み、; それ以外 nullnull 参照 (Visual Basic では Nothing)。

例外

例外 条件
ArgumentNullException

assemblyString パラメーターが nullnull 参照 (Visual Basic では Nothing) です。

解説

プロバイダーは、データのサポートの XML ファイルなどの形式で文字列として指定したアセンブリ名を持つこれらのアセンブリの名前は、CLR Load のメソッドによって自動的に (または正しくないに解決されます。) 解決できない場合は、このメソッドを実装します。このメソッドの 1 種類の使用は不完全なアセンブリの宣言を配置します。文字列が「MyAssembly」である場合 (たとえば、CLR がそれを解決する前に、MyAssembly Version= 2.0.0.0 「、"」、PublicKeyToken=1234567890ABCDEF に配置する場合があります)。

このメソッドは、プロバイダーのコード ベース全体の一般的なアセンブリの重複を減らすために役立つ型の名前の指定を短くするために使用されます。指定されたデータ ソースの特殊化は、共通アセンブリの文字列を使用してこの方法により、さらに別 DDEX のデータ ソースがクライアントが対象とするときによって、異なるアセンブリを参照できるようになります。

次のコードは DDEX のデータ ソースによって異なるアセンブリを返すには、このメソッドを実行する方法を示します。例では、インターフェイスで他のメソッドの既定の実装を提供するフレームワークの DataSourceSpecializer のクラスから継承します。

using System;
using System.Reflection;
using Microsoft.VisualStudio.Data.Core;
using Microsoft.VisualStudio.Data.Framework;

public class MySourceSpecializer4 : DataSourceSpecializer
{
    private static readonly Guid s_dataSource1 =
        new Guid("EB5246D3-277C-4277-910F-111CB9EAD253");
    private static readonly Guid s_dataSource2 =
        new Guid("1EC8B196-7155-4d5a-BBDC-0CC47D631E52");

    public override Assembly GetAssembly(Guid source, string assemblyString)
    {
        if (source == s_dataSource1)
        {
            return Assembly.Load("AssemblyForDataSource1");
        }
        else if (source == s_dataSource2)
        {
            return Assembly.Load("AssemblyForDataSource2");
        }
        else
        {
            return base.GetAssembly(source, assemblyString);
        }
    }
}

.NET Framework セキュリティ

  • 直前の呼び出し元に対する完全な信頼。このメンバーは、部分的に信頼されているコードから使用することはできません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。

参照

関連項目

IVsDataSourceSpecializer インターフェイス

Microsoft.VisualStudio.Data.Core 名前空間