private ResourceType GetResourceType(object instance) { ResourceType type = null; ProviderImplementationSettings.Override( s => s.EnforceMetadataCaching = false, () => type = this.queryProvider.GetResourceType(instance)); return(type); }
/// <summary> /// Wrapper methods around metadata provider to get the ResourceType /// </summary> /// <param name="metadataProvider">metadata provider</param> /// <param name="typeName">type name</param> /// <returns>a resource type or throws</returns> protected ResourceType GetResourceType(IDataServiceMetadataProvider metadataProvider, string typeName) { ResourceType resourceType = null; ProviderImplementationSettings.Override( s => s.EnforceMetadataCaching = false, () => ExceptionUtilities.Assert(metadataProvider.TryResolveResourceType(typeName, out resourceType), "Cannot find a resource type '{0}' in the metadata provider", typeName)); return(resourceType); }
/// <summary> /// Wrapper methods around metadata provider to get the ResourceSet /// </summary> /// <param name="metadataProvider">metadata provider</param> /// <param name="setName">set name</param> /// <returns>a resource set or throws</returns> protected ResourceSet GetResourceSet(IDataServiceMetadataProvider metadataProvider, string setName) { ResourceSet resourceSet = null; ProviderImplementationSettings.Override( s => s.EnforceMetadataCaching = false, () => ExceptionUtilities.Assert(metadataProvider.TryResolveResourceSet(setName, out resourceSet), "Cannot find a resource set '{0}' in the metadata provider", setName)); return(resourceSet); }
/// <summary> /// Attempts to get a metadata provider and retrieved the types that derive from the given type /// </summary> /// <param name="type">The type to get derived types for.</param> /// <returns>The derived types</returns> protected IEnumerable <ResourceType> GetDerivedTypes(ResourceType type) { var metadataProvider = this.QueryProvider as IDataServiceMetadataProvider; if (metadataProvider == null || !metadataProvider.HasDerivedTypes(type)) { return(Enumerable.Empty <ResourceType>()); } IEnumerable <ResourceType> types = null; ProviderImplementationSettings.Override( s => s.EnforceMetadataCaching = false, () => types = metadataProvider.GetDerivedTypes(type)); return(types); }