Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataWeb / Server / System / Data / Services / Caching / MetadataCacheItem.cs / 1 / MetadataCacheItem.cs
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// Provides a class to cache metadata information.
//
//
// @owner [....]
//---------------------------------------------------------------------
namespace System.Data.Services.Caching
{
using System;
using System.Diagnostics;
using System.Collections.Generic;
using System.Data.Services.Providers;
/// Use this class to cache metadata for providers.
internal class MetadataCacheItem
{
#region Private fields.
/// list of top level entity sets
private readonly Dictionary entitySets;
/// Collection of service operations, keyed by name.
private readonly Dictionary serviceOperations;
/// Target type for the data provider.
private readonly Type type;
/// Cache of resource properties per type.
private readonly Dictionary typeCache;
/// Service configuration information.
private DataServiceConfiguration configuration;
/// If the metadata is compliant with the edm schema v1.0 other false, indicating that we need to use 1.1 schema
/// 1> Edm Schema 1.0 FunctionImport returns only collection of scalars or collection of entities
private bool edmVersion1Schema = true;
#endregion Private fields.
/// Initializes a new instance.
/// Type of data context for which metadata will be generated.
internal MetadataCacheItem(Type type)
{
Debug.Assert(type != null, "type != null");
this.serviceOperations = new Dictionary();
this.typeCache = new Dictionary();
this.entitySets = new Dictionary();
this.type = type;
}
#region Properties.
/// Service configuration information.
internal DataServiceConfiguration Configuration
{
[DebuggerStepThrough]
get
{
return this.configuration;
}
set
{
Debug.Assert(value != null, "value != null");
Debug.Assert(this.configuration == null, "this.configuration == null -- otherwise it's being set more than once");
this.configuration = value;
}
}
/// Collection of service operations, keyed by name.
internal Dictionary ServiceOperations
{
[DebuggerStepThrough]
get { return this.serviceOperations; }
}
/// Cache of resource properties per type.
internal Dictionary TypeCache
{
[DebuggerStepThrough]
get { return this.typeCache; }
}
/// list of top level entity sets
internal Dictionary EntitySets
{
[DebuggerStepThrough]
get { return this.entitySets; }
}
/// Target type for the data provider.
internal Type Type
{
[DebuggerStepThrough]
get { return this.type; }
}
/// Returns true if the metadata adheres to edm v1 constraints otherwise returns false.
internal bool EdmVersion1Schema
{
get { return this.edmVersion1Schema; }
set { this.edmVersion1Schema = value; }
}
#endregion Properties.
/// Seals this item instance and prevents further changes.
///
/// This method should be called after the configuration has been set up and before it's placed on the
/// metadata cache for sharing.
///
internal void Seal()
{
this.configuration.Seal();
foreach (ResourceType t in this.typeCache.Values)
{
t.TrimExcess();
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// Provides a class to cache metadata information.
//
//
// @owner [....]
//---------------------------------------------------------------------
namespace System.Data.Services.Caching
{
using System;
using System.Diagnostics;
using System.Collections.Generic;
using System.Data.Services.Providers;
/// Use this class to cache metadata for providers.
internal class MetadataCacheItem
{
#region Private fields.
/// list of top level entity sets
private readonly Dictionary entitySets;
/// Collection of service operations, keyed by name.
private readonly Dictionary serviceOperations;
/// Target type for the data provider.
private readonly Type type;
/// Cache of resource properties per type.
private readonly Dictionary typeCache;
/// Service configuration information.
private DataServiceConfiguration configuration;
/// If the metadata is compliant with the edm schema v1.0 other false, indicating that we need to use 1.1 schema
/// 1> Edm Schema 1.0 FunctionImport returns only collection of scalars or collection of entities
private bool edmVersion1Schema = true;
#endregion Private fields.
/// Initializes a new instance.
/// Type of data context for which metadata will be generated.
internal MetadataCacheItem(Type type)
{
Debug.Assert(type != null, "type != null");
this.serviceOperations = new Dictionary();
this.typeCache = new Dictionary();
this.entitySets = new Dictionary();
this.type = type;
}
#region Properties.
/// Service configuration information.
internal DataServiceConfiguration Configuration
{
[DebuggerStepThrough]
get
{
return this.configuration;
}
set
{
Debug.Assert(value != null, "value != null");
Debug.Assert(this.configuration == null, "this.configuration == null -- otherwise it's being set more than once");
this.configuration = value;
}
}
/// Collection of service operations, keyed by name.
internal Dictionary ServiceOperations
{
[DebuggerStepThrough]
get { return this.serviceOperations; }
}
/// Cache of resource properties per type.
internal Dictionary TypeCache
{
[DebuggerStepThrough]
get { return this.typeCache; }
}
/// list of top level entity sets
internal Dictionary EntitySets
{
[DebuggerStepThrough]
get { return this.entitySets; }
}
/// Target type for the data provider.
internal Type Type
{
[DebuggerStepThrough]
get { return this.type; }
}
/// Returns true if the metadata adheres to edm v1 constraints otherwise returns false.
internal bool EdmVersion1Schema
{
get { return this.edmVersion1Schema; }
set { this.edmVersion1Schema = value; }
}
#endregion Properties.
/// Seals this item instance and prevents further changes.
///
/// This method should be called after the configuration has been set up and before it's placed on the
/// metadata cache for sharing.
///
internal void Seal()
{
this.configuration.Seal();
foreach (ResourceType t in this.typeCache.Values)
{
t.TrimExcess();
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PathTooLongException.cs
- CompositeDataBoundControl.cs
- MutexSecurity.cs
- _DomainName.cs
- BaseTemplateCodeDomTreeGenerator.cs
- Enum.cs
- QueryStack.cs
- StartFileNameEditor.cs
- EventlogProvider.cs
- LocationSectionRecord.cs
- PngBitmapDecoder.cs
- CompilationUtil.cs
- SvcMapFile.cs
- ChtmlPageAdapter.cs
- DropShadowBitmapEffect.cs
- FixedTextPointer.cs
- PauseStoryboard.cs
- _CookieModule.cs
- SqlDataRecord.cs
- DesignTimeValidationFeature.cs
- SecuritySessionServerSettings.cs
- _DisconnectOverlappedAsyncResult.cs
- ServiceModelEnumValidator.cs
- HtmlMeta.cs
- HttpConfigurationSystem.cs
- KeyInfo.cs
- FormsAuthenticationUser.cs
- MdImport.cs
- MobileControlsSection.cs
- reliableinputsessionchannel.cs
- FormatVersion.cs
- PathSegment.cs
- XmlSchemaObject.cs
- CodeTypeReference.cs
- TextStore.cs
- DrawingContext.cs
- TraceContext.cs
- oledbmetadatacolumnnames.cs
- HttpModuleCollection.cs
- ViewStateException.cs
- DataGridViewCellFormattingEventArgs.cs
- SoapAttributeAttribute.cs
- MonikerSyntaxException.cs
- CodeAttributeDeclaration.cs
- SecurityKeyIdentifierClause.cs
- BindingUtils.cs
- Label.cs
- HandlerFactoryWrapper.cs
- ScriptMethodAttribute.cs
- ExtendedPropertyCollection.cs
- RpcResponse.cs
- Pair.cs
- ApplicationActivator.cs
- CommandID.cs
- CodeAccessPermission.cs
- SimpleType.cs
- XmlTextAttribute.cs
- HtmlSelectionListAdapter.cs
- SqlSelectStatement.cs
- ExpressionVisitor.cs
- precedingsibling.cs
- MappingItemCollection.cs
- ColumnHeader.cs
- Timer.cs
- CacheVirtualItemsEvent.cs
- SynchronizationContext.cs
- PageDeviceFont.cs
- TextChangedEventArgs.cs
- CopyAction.cs
- validationstate.cs
- PipelineModuleStepContainer.cs
- LoadedEvent.cs
- Interop.cs
- RoleGroup.cs
- XmlSchemaComplexContentExtension.cs
- BooleanAnimationUsingKeyFrames.cs
- CompiledELinqQueryState.cs
- ComponentEvent.cs
- BuildProvider.cs
- CorrelationValidator.cs
- SqlClientMetaDataCollectionNames.cs
- XAMLParseException.cs
- InstalledFontCollection.cs
- ClientCultureInfo.cs
- TokenFactoryBase.cs
- CrossContextChannel.cs
- XmlTextReaderImplHelpers.cs
- ExpressionBuilderCollection.cs
- WebDescriptionAttribute.cs
- ForeignConstraint.cs
- Rotation3D.cs
- VectorValueSerializer.cs
- InputReport.cs
- SocketInformation.cs
- DnsElement.cs
- Condition.cs
- XamlDesignerSerializationManager.cs
- MenuAutoFormat.cs
- SqlColumnizer.cs
- UpDownEvent.cs