本文整理汇总了C#中IODataRequestMessage.PreferHeader方法的典型用法代码示例。如果您正苦于以下问题:C# IODataRequestMessage.PreferHeader方法的具体用法?C# IODataRequestMessage.PreferHeader怎么用?C# IODataRequestMessage.PreferHeader使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IODataRequestMessage
的用法示例。
在下文中一共展示了IODataRequestMessage.PreferHeader方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ClientPreference
/// <summary>
/// Initializes a new instance of the <see cref="ClientPreference"/> class.
/// </summary>
/// <param name="requestDescription">The request description.</param>
/// <param name="verb">The request verb.</param>
/// <param name="requestMessage">The request message.</param>
/// <param name="effectiveMaxResponseVersion">The effective max response version for the request, which is the min of MDSV and MPV.</param>
public ClientPreference(RequestDescription requestDescription, HttpVerbs verb, IODataRequestMessage requestMessage, Version effectiveMaxResponseVersion)
: this(InterpretClientPreference(requestDescription, verb, requestMessage))
{
if (effectiveMaxResponseVersion >= VersionUtil.Version4Dot0)
{
this.annotationFilter = requestMessage.PreferHeader().AnnotationFilter;
}
}
示例2: InterpretClientPreference
/// <summary>
/// Interprets the client preference for having a response body.
/// </summary>
/// <param name="requestDescription">The request description.</param>
/// <param name="verb">The request verb.</param>
/// <param name="requestMessage">The request message.</param>
/// <returns>An enum representation of the client's preference.</returns>
private static ResponseBodyPreference InterpretClientPreference(RequestDescription requestDescription, HttpVerbs verb, IODataRequestMessage requestMessage)
{
Debug.Assert(requestDescription != null, "requestDescription != null");
// If no responseBodyPreference given, we have default behavior of producing content for POST and not producing it for PUT/PATCH.
// If responseBodyPreference is given we honor the responseBodyPreference only if the request was for an entity and following conditions are true:
// This is not a service operation invoke
// DSV was set to 3.0 and above
// Server is configured to be >= 3.0
if (requestDescription.LinkUri || requestDescription.SegmentInfos[0].TargetSource == RequestTargetSource.ServiceOperation || requestDescription.RequestVersion < VersionUtil.Version4Dot0)
{
return ResponseBodyPreference.None;
}
if ((verb.IsInsert()) || ((verb.IsUpdate()) && (requestDescription.TargetKind == RequestTargetKind.Resource || requestDescription.IsRequestForNonEntityProperty)))
{
if (requestMessage.PreferHeader().ReturnContent.HasValue)
{
return requestMessage.PreferHeader().ReturnContent.Value ? ResponseBodyPreference.Content : ResponseBodyPreference.NoContent;
}
}
// TODO: move logic for when/when-not-to write a response body here and remove all checks for 'none' elsewhere
return ResponseBodyPreference.None;
}