Sdílet prostřednictvím


IVsDataProvider.TryCreateObject<TSite> – metoda (Guid, Type, TSite)

Zadaný zdroj dat DDEX, který je implementován zprostředkovatelem DDEX umístěny objektu zadaného serveru pokusí vytvořit instanci určené DDEX podporu entity.

Obor názvů:  Microsoft.VisualStudio.Data.Core
Sestavení:  Microsoft.VisualStudio.Data.Core (v Microsoft.VisualStudio.Data.Core.dll)

Syntaxe

'Deklarace
Function TryCreateObject(Of TSite) ( _
    source As Guid, _
    objType As Type, _
    site As TSite _
) As Object
Object TryCreateObject<TSite>(
    Guid source,
    Type objType,
    TSite site
)
generic<typename TSite>
Object^ TryCreateObject(
    Guid source, 
    Type^ objType, 
    TSite site
)
abstract TryCreateObject : 
        source:Guid * 
        objType:Type * 
        site:'TSite -> Object 
Jazyk JScript nepodporuje obecné typy a metody.

Parametry typu

  • TSite
    Na webu.

Parametry

  • source
    Typ: System.Guid
    Identifikátor zdroje dat DDEX nebo Empty pro žádný určitý datový zdroj.
  • site
    Typ: TSite
    Instance objektu, který by měl web nový subjekt DDEX podpory.

Vrácená hodnota

Typ: System.Object
Instance určený subjekt podporu DDEX, který je implementován zprostředkovatelem DDEX umístěno objekt zadaného serveru, pokud DDEX provider podporuje. jinak null .

Výjimky

Výjimka Podmínka
ArgumentNullException

The objType parameter is nullodkaz null (Nothing v jazyce Visual Basic).

[DataProviderException]

Vytváření nové instance entity podporu došlo k výjimce podle způsobu CreateInstance volání prostřednictvím reflexe nebo prostřednictvím poskytovatele DDEX CreateObject nebo CreateObject implementace metody nebo Nepodařilo se vytvořit objekt provedení výchozí nebo klienta (pokud existuje).

Poznámky

Tato metoda provádí různé kroky k vytvoření instance určeného typu entity DDEX podporu.

Kontrola registru

Spustí metodu kontroly registru informace o podporu subjektu.Vypadá poskytovatele SupportedObjects klíče pro klíč registru, který odpovídá typu entity podpory.Pokud zdroj dat DDEX neprázdný byl předán metodě, také hledá podklíč pro tento zdroj dat DDEX.Pokud je nalezen buď klíč, načte výchozí hodnotu klíče.Pokud je hodnota klíče bez- null a prázdný, převezme hodnotu zadejte název třídy, která implementuje podporu entity.Ji pak načte kvalifikované informace, počínaje hodnotou CodeBase, a pokud je null , hodnotu sestavení.Hodnota CodeBase je plně kvalifikovaná cesta sestavení obsahující registrovaného typu.Hodnota sestavení je plně kvalifikovaný název sestavení, které mohou být umístěny a načten společného jazykového modulu runtime (CLR).

Pokud podpora entity zdědí základní IVsDataSupport rozhraní, jejichž jediným účelem je vrátit do proudu XML, metoda hledá další hodnoty, které mohou popisovat umístění souboru XML, který lze předat základní implementace specifickou podporu entity.Příkladem by DataObjectSupport třídy, která je definována v standardní rámec sestavení DDEX.Metoda hledá nejprve XmlFile hodnoty, které mohou nebo nemusí být úplný název souboru XML na disk.Pokud tato hodnota neexistuje, vyhledá metoda může obsahovat cestu k neúplnému hodnotu XmlFile hodnota XmlPath.Oddělení cestu a název souboru je důležité, když ukládáte ve stejném umístění cesty lokalizované verze souboru XML.Pokud neexistuje žádná hodnota XmlFile, vyhledá metoda XmlResource hodnotu, určující název prostředku, který obsahuje XML v sestavení.Ji a pak hledá kvalifikované informace, počínaje hodnotou XmlCodeBase a pokud je null , XmlAssembly hodnotou.Hodnota XmlCodeBase je plně kvalifikovaná cesta sestavení obsahující zadaný zdroj.Hodnota XmlAssembly je plně kvalifikovaný název sestavení, které mohou být umístěny a načten CLR.

Jestliže v tomto okamžiku je určena není dostatek informací v registru vytvořit instanci entity DDEX podporu, krok kontroly registru přeskočeno.V tomto případě metoda přejde explicitní implementace IVsDataSourceSpecializer nebo IVsDataProviderObjectFactory rozhraní, pokud je implementován zprostředkovatelem DDEX.Jinak metoda načte příslušnou sestavení codebase nebo celé jméno (v uvedeném pořadí) a typ získává ze sestavení.Pokud tento proces nenajde odpovídající typ, DataProviderException je vyvolána.

Nakonec je vytvořena instance typu.Pokud podpora entity zdědí základní IVsDataSupport byla registrována rozhraní a další informace o umístění souboru XML s poskytovatelem, tyto informace jsou předány jako argumenty konstruktoru typu.Tyto informace jsou předány jako název souboru XML a cesta (dva řetězce) nebo jako název zdroje XML a vyřešit Assembly objektu (řetězec a Assembly objektu).V takovém případě DataProviderException je vyvolána při sestavení nelze načíst.Pokud jiné chybě dochází při vytváření instance typu nebo vytvořený typ neimplementuje typ entity očekávané podpory, DataProviderException je vyvolána.

Volání Specializer zdroje nebo zprostředkovatele objektu výroby

Při inspekci registru najít dostatek informací k vytvoření instance entity podpory poskytovatele DDEX zdroj specializer (pokud existuje) nebo objektu výroby (pro zprostředkovatele podle balíčku) CreateObject je volána metoda.Tato metoda je předán prázdný DDEX zdroje dat, se specializer zdroj poskytovatele (pokud existuje) nejprve nazývá.Pokud tato metoda vyvolá NotImplementedException nebo vrátí žádné nové instance volá factory zprostředkovatele objektu, pokud je jedna také ignoruje všechny NotImplementedException , je vyvolána.Pro všechny výjimky DataProviderException je vyvolána.

Vytvořit výchozí Instance

Pokud žádný objekt byl vytvořen tento bod, to znamená DDEX provider neimplementuje podporu entity.Však pokud subjekt podporu definuje výchozí implementace objekt, instance objektu výchozí vytvoří.

[!POZNÁMKA]

DDEX v aplikaci Visual Studio 2005 nepodporuje výchozí objekt implementace, takže bude vytvořen žádný výchozí objekt.

Umístění objektu

Všechny nově vytvořené instance entity podporu DDEX které používají tuto metodu může být situován s objekty tři standardní webu.Tyto objekty jsou takto: objekt globální poskytovatel metadat IVsDataProvider objekt, který ji vytvořil, a IVsDataSource objekt představující konkrétní zdroj dat DDEX, který byl vytvořen, pokud zdroj dat DDEX prázdný.Instance jsou umístěny pouze v případě, že implementuje nově vytvořené instanci IVsDataSiteableObject<T> rozhraní s obecnými typy IServiceProvider , IVsDataProvider , nebo IVsDataSource , resp..

Po těchto objektů standardní web Pokud je předán objekt vlastního webu volající, nová instance bude Stíněný s vlastní objekt při implementuje IVsDataSiteableObject<T> rozhraní.

Vytváření objektu klienta

Posledním krokem při vytváření entitu DDEX podporu zahrnuje vyrábějící wrapper klienta objektu, pokud subjekt je definován jedním.Důvodem je první kontrolou podporu typu entity pro instanci DataClientObjectAttribute.Pokud existuje tato instance, instance identifikován přidruženou třídou vytvořený ID objektu a nový objekt provider předána tohoto klienta objektu.Po vytvoření klienta objekty jsou jsou umístěny se stejnou sadou webu standardních a vlastních objektů, které základní objekt zprostředkovatele byla nabídnuta.

Příklady

Následující kód ukazuje způsob volání této metody vytvořit standardní podpora subjektů.

using System;
using Microsoft.VisualStudio.Data.Core;
using Microsoft.VisualStudio.Data.Services.SupportEntities;

public class DDEX_IVsDataProviderExample10
{
    public static IVsDataConnectionProperties CreateConnectionProperties(
        IVsDataProvider provider)
    {
        return provider.TryCreateObject<IVsDataConnectionProperties>();
    }
}

Zabezpečení rozhraní .NET Framework

Viz také

Referenční dokumentace

IVsDataProvider Rozhraní

TryCreateObject – přetížení

Microsoft.VisualStudio.Data.Core – obor názvů