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
    类型:System.Guid
    一个支持的DDEX提供程序的标识符。

返回值

类型:System.Object
属性的值,因此,如果存在;否则,nullnull 引用(在 Visual Basic 中为 Nothing)。

异常

异常 条件
ArgumentNullException

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

备注

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

当 provider 参数是空的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 命名空间