/// <summary> /// Constructs an instance of <see cref="ODataResourceMetadataContextWithModel"/>. /// </summary> /// <param name="resource">The resource instance.</param> /// <param name="typeContext">The context object to answer basic questions regarding the type of the resource.</param> /// <param name="actualResourceType">The structured type of the resource.</param> /// <param name="metadataContext">The metadata context to use.</param> /// <param name="selectedProperties">The selected properties.</param> /// <param name="metadataSelector">The metadata selector to use when writing metadata.</param> internal ODataResourceMetadataContextWithModel(ODataResourceBase resource, IODataResourceTypeContext typeContext, IEdmStructuredType actualResourceType, IODataMetadataContext metadataContext, SelectedPropertiesNode selectedProperties, ODataMetadataSelector metadataSelector) : base(resource, typeContext) { Debug.Assert(actualResourceType != null, "actualResourceType != null"); Debug.Assert(metadataContext != null, "metadataContext != null"); Debug.Assert(selectedProperties != null, "selectedProperties != null"); this.actualResourceType = actualResourceType; this.metadataContext = metadataContext; this.selectedProperties = selectedProperties; this.metadataSelector = metadataSelector; }
/// <summary> /// Creates an instance of <see cref="ODataResourceMetadataContext"/>. /// </summary> /// <param name="resource">The resource instance.</param> /// <param name="typeContext">The context object to answer basic questions regarding the type of the resource.</param> /// <param name="serializationInfo">The serialization info of the resource for writing without model.</param> /// <param name="actualResourceType">The structured type of the resource.</param> /// <param name="metadataContext">The metadata context to use.</param> /// <param name="selectedProperties">The selected properties.</param> /// <param name="metadataSelector">Informs the metadata builder which properties, functions, actions, links to omit.</param> /// <returns>A new instance of <see cref="ODataResourceMetadataContext"/>.</returns> internal static ODataResourceMetadataContext Create( ODataResourceBase resource, IODataResourceTypeContext typeContext, ODataResourceSerializationInfo serializationInfo, IEdmStructuredType actualResourceType, IODataMetadataContext metadataContext, SelectedPropertiesNode selectedProperties, ODataMetadataSelector metadataSelector) { if (serializationInfo != null) { return(new ODataResourceMetadataContextWithoutModel(resource, typeContext, serializationInfo)); } return(new ODataResourceMetadataContextWithModel(resource, typeContext, actualResourceType, metadataContext, selectedProperties, metadataSelector)); }