共用方式為


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 提供者識別項時,這個方法會開啟支援的提供者的子機碼中資料來源的根登錄機碼 (Registry Key) 和要求值擷取特定提供者資料來源屬性值中指定的 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 命名空間