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 提供者的識別項。
- name
型別:System.String
要擷取的屬性名稱。
傳回值
型別: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 安全性
- 完全信任立即呼叫者。這個成員無法供部分信任的程式碼使用。如需詳細資訊,請參閱從部分受信任程式碼使用程式庫。