Del via


Konfigurere konteksten med konfigurationsfilen (Dynamics CRM 2015)

 

Udgivet: november 2016

Gælder for: Dynamics CRM 2015

Når du bruger Developer Extensions forMicrosoft Dynamics CRM 2015, i stedet for automatisk at justere afhængighedens sammensætning, er det muligt at påvirke standardobjekttyperne ved at ændre programmets konfigurationsfil. Minimumkonfigurationen giver kun forbindelsesstrengen og datakonteksten. Standardafhængighedsobjekter oprettes i avancerede indstillinger lige som via programmering.

Dette emne indeholder

Oversigt

Konfigurationsregler

Angiv attributten instanceMode

Standardkonfiguration

Oversigt

Følgende viser en del af den standardkonfigurationsfilen:

<configuration>

 <configSections>
  <section name="microsoft.xrm.client" type="Microsoft.Xrm.Client.Configuration.CrmSection, Microsoft.Xrm.Client"/>
 </configSections>

 <connectionStrings>
  <add name="Xrm" connectionString="Url=http://crm.contoso.com/xrmContoso"/>
 </connectionStrings>

 <microsoft.xrm.client>
  <contexts>
   <add name="Xrm" type="Xrm.XrmServiceContext, Xrm"/>
  </contexts>
 </microsoft.xrm.client>

</configuration>

CrmConfigurationManager bruges til omdanne konfigurationen til faktisk kode. Metoden CreateContext tager navnet på det kontekst-konfigurationselement, der skal bruges til at oprette datakonteksten.

var contextName = "Xrm";
using (var context = CrmConfigurationManager.CreateContext(contextName) as XrmServiceContext)
{
}

Videresendelse af null tager standardkontekst-konfigurationselementet, som er det første element i samlingen. Det er desuden muligt at overskrive dette med et eksplicit standardelement. Følgende kode opnår de samme resultater, som vist i ovenstående eksempel.

using (var context = CrmConfigurationManager.CreateContext() as XrmServiceContext)
{
}

Konfigurationselementet kontekst er ansvarligt for at angive forbindelsesstrengen, og som standard søger det efter en forbindelsesstreng med det samme navn som navnet på kontekstkonfigurationelementet. Ovenstående eksempel svarer til navnet "Xrm". Forbindelsesstrengenavnet kan angives eksplicit for at fremhæve og isolere dette forhold, som vist her.

<connectionStrings>
 <add name="MyCRM" connectionString="Url=http://crm.contoso.com/xrmContoso"/>
</connectionStrings>

<microsoft.xrm.client>
 <contexts>
  <add name="Xrm" type="Xrm.XrmServiceContext, Xrm" connectionStringName="MyCRM"/>
 </contexts>
</microsoft.xrm.client>

De indlejrede afhængigheder kan specificeres og sammenkædes, som vist i dette eksempel:

<microsoft.xrm.client>
 <contexts>
  <add name="Xrm" type="Xrm.XrmServiceContext, Xrm" serviceName="MyService"/>
 </contexts>
 <services>
  <add name="MyService" type="Microsoft.Xrm.Client.Services.CachedOrganizationService, Microsoft.Xrm.Client" serviceCacheName="MyServiceCache"/>
 </services>
 <serviceCache>
  <add name="MyServiceCache" type="Microsoft.Xrm.Client.Services.OrganizationServiceCache, Microsoft.Xrm.Client" objectCacheName="MyObjectCache"/>
 </serviceCache>
 <objectCache>
  <add name="MyObjectCache" type="System.Runtime.Caching.MemoryCache, System.Runtime.Caching, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
 </objectCache>
</microsoft.xrm.client>

I følgende eksempel vises, hvordan du deaktiverer cachelagring.

<microsoft.xrm.client>
  <contexts>
   <add name="Xrm" type="Xrm.XrmServiceContext, Xrm" serviceName="Xrm"/>
  </contexts>
  <services>
   <add name="Xrm" type="Microsoft.Xrm.Client.Services.OrganizationService, Microsoft.Xrm.Client"/>
  </services>
</microsoft.xrm.client>

Konfigurationsregler

I det følgende vises reglerne for konfiguration af konteksten.

  • Angiv elementet <kontekst> - Der findes ikke en klasse af standardtypen for afhængigheden OrganizationServiceContext, så det er påkrævet at angive elementet <context/>, medmindre du udelukkende arbejder med den dynamiske CrmOrganizationServiceContext og uden kodegenerering.

  • Du kan også angive afhængighedsnavnet - Standardafhængighedens navneattribut (f.eks = "Xrm") er valgfri. Hvis den udelades, er det første <add/>-element i konfigurationssamlingen standard.

  • Angiv sammenkædningsattributten – Det er almindeligt at angive sammenkædningsattributten som serviceName="Xrm", serviceCacheName="Xrm" og objectCacheName="Xrm". Men når en sammenkædningsattribut udelades, forsøger CrmConfigurationManager at linke til den underordnede afhængighed med det samme navn som den overordnede afhængighed.

Nogle af afhængighederne fra konfigurationen kan instantieres med CrmConfigurationManager sammen med den relevante statiske metode. Det resulterende objekt kan konverteres til den kendte type eller refereres til som basistype uden konvertering.

var name = "Xrm";
var connection = new CrmConnection(name);
var objectCache = CrmConfigurationManager.CreateObjectCache(name) as MemoryCache;
var serviceCache = CrmConfigurationManager.CreateServiceCache(name, connection) as OrganizationServiceCache;
var service = CrmConfigurationManager.CreateService(connection, name) as CachedOrganizationService;
var context = CrmConfigurationManager.CreateContext(name) as XrmServiceContext;

Angiv attributten instanceMode

Hvis et konfigurationselement angiver en InstanceMode, justererer CrmConfigurationManager sin instantieringsfunktionalitet i overensstemmelse hermed.

  • Statisk – returnerer altid den samme statiske forekomst.

  • PerName– returnerer en enkelt forekomst for hvert angivet konfigurationselement.

  • PerRequest – returnerer de samme første forekomst i forbindelse med en webanmodning, f.eks. én forekomst for hver HttpContext-forekomst.

  • PerInstance – returnerer en ny forekomst for hvert opkald.

Standardkonfiguration

Den fulde konfiguration med standardværdier:

<configuration>

 <configSections>
  <section name="microsoft.xrm.client" type="Microsoft.Xrm.Client.Configuration.CrmSection, Microsoft.Xrm.Client"/>
 </configSections>

 <connectionStrings>
  <add name="Xrm" connectionString="ServiceUri=...; Domain=...; Username=...; Password=..."/>
 </connectionStrings>

 <microsoft.xrm.client>
  <contexts default="Xrm">
   <add name="Xrm" type="Xrm.XrmServiceContext, Xrm" connectionStringName="Xrm" serviceName="Xrm"/>
  </contexts>
  <services default="Xrm">
   <add
    name="Xrm"
    type="Microsoft.Xrm.Client.Services.CachedOrganizationService, Microsoft.Xrm.Client"
    serviceCacheName="Xrm"
    instanceMode="PerRequest" [Static | PerName | PerRequest | PerInstance]
   />
  </services>
  <serviceCache default="Xrm">
   <add
    name="Xrm"
    type="Microsoft.Xrm.Client.Services.OrganizationServiceCache, Microsoft.Xrm.Client"
    objectCacheName="Xrm"
    cacheMode="LookupAndInsert" [LookupAndInsert | InsertOnly | Disabled]
    returnMode="Cloned" [Shared | Cloned]
    queryHashingEnabled="false" [false | true]
   />
  </serviceCache>
  <objectCache default="Xrm">
   <add
    name="Xrm"
    type="System.Runtime.Caching.MemoryCache, System.Runtime.Caching, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
    instanceMode="PerName" [Static | PerName | PerInstance]
    absoluteExpiration=""
    slidingExpiration="00:00:00" [HH:MM:SS]
    duration="00:00:00" [HH:MM:SS]
    priority="Default" [Default | NotRemovable]
    outputCacheProfileName="Xrm"
   />
  </objectCache>
 </microsoft.xrm.client>

 <system.runtime.caching>
  <memoryCache>
   <namedCaches>
    <add name="Xrm"
     cacheMemoryLimitMegabytes="0"
     physicalMemoryLimitPercentage="0"
     pollingInterval="00:00:00" />
    </namedCaches>
   </memoryCache>
 </system.runtime.caching>

 <system.web>
  <caching>
   <outputCacheSettings>
    <outputCacheProfiles>
     <add name="Xrm" enabled="true" duration="-1"/>
    </outputCacheProfiles>
   </outputCacheSettings>
  </caching>
 </system.web>

</configuration>

Se også

Kontekstobjektmodel for udviklerudvidelser (Dynamics CRM 2015)
Adgang til objektrelationer (Dynamics CRM 2015)
Knytte objekter til konteksten (Dynamics CRM 2015)

© 2017 Microsoft. Alle rettigheder forbeholdes. Ophavsret