本文整理汇总了C#中IHttpRequest.DeserializeAndCast方法的典型用法代码示例。如果您正苦于以下问题:C# IHttpRequest.DeserializeAndCast方法的具体用法?C# IHttpRequest.DeserializeAndCast怎么用?C# IHttpRequest.DeserializeAndCast使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IHttpRequest
的用法示例。
在下文中一共展示了IHttpRequest.DeserializeAndCast方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CompareRequest
private void CompareRequest(ExpectedClientRequest expected, IHttpRequest actual)
{
this.parent.Assert.AreEqual(expected.Verb, actual.Verb, "Request verb did not match");
// The headers are quite different when using XmlHttp
if (!this.contextData.UsesXmlHttpStack())
{
this.CompareHeaders(expected.Headers, actual.Headers);
}
if (expected.Body == null)
{
int actualLength = 0;
var actualBody = actual.GetRequestBody();
if (actualBody != null)
{
actualLength = actualBody.Length;
}
this.parent.Assert.AreEqual(0, actualLength, "Request should not have had a body");
}
else
{
ODataPayloadElement actualPayload;
if (expected.Body.ElementType == ODataPayloadElementType.EntityInstance)
{
actualPayload = actual.DeserializeAndCast<EntityInstance>(this.parent.FormatSelector);
}
else if (expected.Body.ElementType == ODataPayloadElementType.DeferredLink)
{
actualPayload = actual.DeserializeAndCast<DeferredLink>(this.parent.FormatSelector);
}
else
{
ExceptionUtilities.Assert(expected.Body.ElementType == ODataPayloadElementType.PrimitiveValue, "Expected payload element was neither an entity, a link, nor a stream");
actualPayload = new PrimitiveValue(null, actual.GetRequestBody());
}
try
{
this.parent.PayloadComparer.Compare(expected.Body, actualPayload);
}
catch (TestFailedException e)
{
this.parent.Log.WriteLine(LogLevel.Error, "Expected client request payload did not match actual.");
var strategy = this.parent.FormatSelector.GetStrategy(actual.GetHeaderValueIfExists(HttpHeaders.ContentType), null);
var expectedBinary = strategy.GetSerializer().SerializeToBinary(expected.Body);
this.parent.Log.WriteLine(LogLevel.Verbose, "Expected request:");
var expectedToLog = new HttpRequestData() { Verb = expected.Verb, Uri = expected.Uri, Body = expectedBinary };
expectedToLog.Headers.AddRange(expected.Headers);
expectedToLog.WriteToLog(this.parent.Log, LogLevel.Verbose);
this.parent.Log.WriteLine(LogLevel.Verbose, "Actual request:");
actual.WriteToLog(this.parent.Log, LogLevel.Verbose);
// wrap to preserve call stack
throw new AssertionFailedException("Expected client request payload did not match actual.", e);
}
}
}