Imported Upstream version 4.0.0~alpha1

Former-commit-id: 806294f5ded97629b74c85c09952f2a74fe182d9
This commit is contained in:
Jo Shields
2015-04-07 09:35:12 +01:00
parent 283343f570
commit 3c1f479b9d
22469 changed files with 2931443 additions and 869343 deletions

View File

@@ -0,0 +1,75 @@
//-----------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.ServiceModel.Dispatcher
{
using System;
using System.ServiceModel;
using System.Collections.Generic;
using System.ServiceModel.Description;
using System.Runtime.Serialization;
public class FaultContractInfo
{
string action;
Type detail;
string elementName;
string ns;
IList<Type> knownTypes;
DataContractSerializer serializer;
public FaultContractInfo(string action, Type detail)
: this(action, detail, null, null, null)
{
}
internal FaultContractInfo(string action, Type detail, XmlName elementName, string ns, IList<Type> knownTypes)
{
if (action == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("action");
}
if (detail == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("detail");
}
this.action = action;
this.detail = detail;
if (elementName != null)
this.elementName = elementName.EncodedName;
this.ns = ns;
this.knownTypes = knownTypes;
}
public string Action { get { return this.action; } }
public Type Detail { get { return this.detail; } }
internal string ElementName { get { return this.elementName; } }
internal string ElementNamespace { get { return this.ns; } }
internal IList<Type> KnownTypes { get { return this.knownTypes; } }
internal DataContractSerializer Serializer
{
get
{
if (this.serializer == null)
{
if (this.elementName == null)
{
this.serializer = DataContractSerializerDefaults.CreateSerializer(this.detail, this.knownTypes, int.MaxValue /* maxItemsInObjectGraph */);
}
else
{
this.serializer = DataContractSerializerDefaults.CreateSerializer(this.detail, this.knownTypes, this.elementName, this.ns == null ? string.Empty : this.ns, int.MaxValue /* maxItemsInObjectGraph */);
}
}
return this.serializer;
}
}
}
}