IVsDataSource.GetProperty 方法 (Guid, String)

获取 DDEX 数据源的属性。注册由特定支持的 DDEX 提供程序。

命名空间:  Microsoft.VisualStudio.Data.Core
程序集:  Microsoft.VisualStudio.Data.Core(在 Microsoft.VisualStudio.Data.Core.dll 中)

语法

声明
Function GetProperty ( _
    provider As Guid, _
    name As String _
) As Object
Object GetProperty(
    Guid provider,
    string name
)
Object^ GetProperty(
    Guid provider, 
    String^ name
)
abstract GetProperty : 
        provider:Guid * 
        name:string -> Object
function GetProperty(
    provider : Guid, 
    name : String
) : Object

参数

  • provider
    类型:Guid

    受支持的 DDEX 提供程序标识符的。

  • name
    类型:String

    要检索的属性的名称。

返回值

类型:Object
属性值,如果,存在;否则,返回 nullnull 引用(在 Visual Basic 中为 Nothing)。

异常

异常 条件
ArgumentNullException

name 参数为 nullnull 引用(在 Visual Basic 中为 Nothing)。

备注

DDEX 数据源可以由 DDEX 访问注册客户确定有关数据源的信息的一组属性。 此外,支持 DDEX 数据源的每个 DDEX 提供程序可注册该提供程序特定的属性与 DDEX 数据源。

如果 provider 参数为 null 时 GUID,该方法通过打开 DDEX 数据源的根注册表项 (在数据源中密钥在本地 Visual Studio 注册表配置单元) 和请求值检索全局数据源属性值。具有指定的 name项下。 尽管提供程序参数是有效的支持 DDEX 提供程序标识符时,该方法通过打开支持的程序提供的子项。数据源的根注册表项下和请求值检索一提供程序特定数据源的属性值与指定 name的以下子项下。 在特定的属性请求后,其值由运行时公开且没有保存在内存 DDEX 刷新,直到重新启动 Visual Studio。

示例

下面的代码演示 DisplayName 属性的实现。 由于支持提供程序仅提供本地化的字符串一样,它确定相应支持的提供程序以根据和/或提供程序提供 DisplayName 属性的值默认提供程序。 使用 DDEX 提供程序 API,然后解决此为实际的本地化字符串。

using System;
using System.Data;
using System.Data.Common;
using Microsoft.VisualStudio.Data.Core;

public class DDEX_IVsDataSourceExample2
{
    public static string GetSourceDisplayName(
        IServiceProvider serviceProvider,
        IVsDataSource dataSource)
    {
        string displayName = null;
        string resourceId = null;
        Guid provider = dataSource.DefaultProvider;
        if (provider != Guid.Empty)
        {
            resourceId = dataSource.GetProperty(provider, "DisplayName") as string;
        }
        if (resourceId == null)
        {
            foreach (Guid providerId in dataSource.GetProviders())
            {
                resourceId = dataSource.GetProperty(
                    providerId, "DisplayName") as string;
                if (resourceId != null)
                {
                    provider = providerId;
                    break;
                }
            }
        }
        if (provider != Guid.Empty && resourceId != null)
        {
            IVsDataProviderManager providerManager = serviceProvider.GetService(
                typeof(IVsDataProviderManager)) as IVsDataProviderManager;
            IVsDataProvider dataProvider = providerManager.Providers[provider];
            displayName = dataProvider.GetString(resourceId);
        }
        return displayName;
    }
}

.NET Framework 安全性

请参阅

参考

IVsDataSource 接口

GetProperty 重载

Microsoft.VisualStudio.Data.Core 命名空间