IVsDataSourceSpecializer.GetAssembly 方法

解析一个提供程序特定的程序集字符串与其对应的 Assembly 表示,的特定DDEX数据源。

命名空间:  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 方法自动解决(或将无法正确解析。)此方法的用途之一是展开一个不完整的程序集说明。(例如,因此,如果该字符串为“MyAssembly”它可以捕获展开为“MyAssembly,Version= 2.0.0.0,Culture=neutral,PublicKeyToken=1234567890ABCDEF”,在CLR解决它。)。

提供此方法缩短类型名称的提供程序的规范,这有助于减少一个常用的程序集复制到代码库中的。在不同的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 命名空间