当前位置: 首页>>代码示例>>C#>>正文


C# DataContract.GetType方法代码示例

本文整理汇总了C#中System.Runtime.Serialization.DataContract.GetType方法的典型用法代码示例。如果您正苦于以下问题:C# DataContract.GetType方法的具体用法?C# DataContract.GetType怎么用?C# DataContract.GetType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Runtime.Serialization.DataContract的用法示例。


在下文中一共展示了DataContract.GetType方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: VerifyObjectCompatibilityWithInterface

 private static void VerifyObjectCompatibilityWithInterface(DataContract contract, object graph, Type declaredType)
 {
     Type type = contract.GetType();
     if ((type == typeof(XmlDataContract)) && !Globals.TypeOfIXmlSerializable.IsAssignableFrom(declaredType))
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(System.Runtime.Serialization.SR.GetString("XmlObjectAssignedToIncompatibleInterface", new object[] { graph.GetType(), declaredType })));
     }
     if ((type == typeof(CollectionDataContract)) && !CollectionDataContract.IsCollectionInterface(declaredType))
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(System.Runtime.Serialization.SR.GetString("CollectionAssignedToIncompatibleInterface", new object[] { graph.GetType(), declaredType })));
     }
 }
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:12,代码来源:XmlObjectSerializerWriteContextComplexJson.cs

示例2: CreateJsonDataContract

 private static JsonDataContract CreateJsonDataContract(int id, DataContract traditionalDataContract)
 {
     lock (s_createDataContractLock)
     {
         JsonDataContract dataContract = s_dataContractCache[id];
         if (dataContract == null)
         {
             Type traditionalDataContractType = traditionalDataContract.GetType();
             if (traditionalDataContractType == typeof(ObjectDataContract))
             {
                 dataContract = new JsonObjectDataContract(traditionalDataContract);
             }
             else if (traditionalDataContractType == typeof(StringDataContract))
             {
                 dataContract = new JsonStringDataContract((StringDataContract)traditionalDataContract);
             }
             else if (traditionalDataContractType == typeof(UriDataContract))
             {
                 dataContract = new JsonUriDataContract((UriDataContract)traditionalDataContract);
             }
             else if (traditionalDataContractType == typeof(QNameDataContract))
             {
                 dataContract = new JsonQNameDataContract((QNameDataContract)traditionalDataContract);
             }
             else if (traditionalDataContractType == typeof(ByteArrayDataContract))
             {
                 dataContract = new JsonByteArrayDataContract((ByteArrayDataContract)traditionalDataContract);
             }
             else if (traditionalDataContract.IsPrimitive ||
                 traditionalDataContract.UnderlyingType == Globals.TypeOfXmlQualifiedName)
             {
                 dataContract = new JsonDataContract(traditionalDataContract);
             }
             else if (traditionalDataContractType == typeof(ClassDataContract))
             {
                 dataContract = new JsonClassDataContract((ClassDataContract)traditionalDataContract);
             }
             else if (traditionalDataContractType == typeof(EnumDataContract))
             {
                 dataContract = new JsonEnumDataContract((EnumDataContract)traditionalDataContract);
             }
             else if ((traditionalDataContractType == typeof(GenericParameterDataContract)) ||
                 (traditionalDataContractType == typeof(SpecialTypeDataContract)))
             {
                 dataContract = new JsonDataContract(traditionalDataContract);
             }
             else if (traditionalDataContractType == typeof(CollectionDataContract))
             {
                 dataContract = new JsonCollectionDataContract((CollectionDataContract)traditionalDataContract);
             }
             else if (traditionalDataContractType == typeof(XmlDataContract))
             {
                 dataContract = new JsonXmlDataContract((XmlDataContract)traditionalDataContract);
             }
             else
             {
                 throw new ArgumentException(SR.Format(SR.JsonTypeNotSupportedByDataContractJsonSerializer, traditionalDataContract.UnderlyingType), "traditionalDataContract");
             }
         }
         return dataContract;
     }
 }
开发者ID:johnhhm,项目名称:corefx,代码行数:62,代码来源:JsonDataContract.cs

示例3: CreateJsonDataContract

 private static JsonDataContract CreateJsonDataContract(int id, DataContract traditionalDataContract)
 {
     lock (createDataContractLock)
     {
         JsonDataContract contract = dataContractCache[id];
         if (contract == null)
         {
             Type type = traditionalDataContract.GetType();
             if (type == typeof(ObjectDataContract))
             {
                 contract = new JsonObjectDataContract(traditionalDataContract);
             }
             else if (type == typeof(StringDataContract))
             {
                 contract = new JsonStringDataContract((StringDataContract) traditionalDataContract);
             }
             else if (type == typeof(UriDataContract))
             {
                 contract = new JsonUriDataContract((UriDataContract) traditionalDataContract);
             }
             else if (type == typeof(QNameDataContract))
             {
                 contract = new JsonQNameDataContract((QNameDataContract) traditionalDataContract);
             }
             else if (type == typeof(ByteArrayDataContract))
             {
                 contract = new JsonByteArrayDataContract((ByteArrayDataContract) traditionalDataContract);
             }
             else if (traditionalDataContract.IsPrimitive || (traditionalDataContract.UnderlyingType == Globals.TypeOfXmlQualifiedName))
             {
                 contract = new JsonDataContract(traditionalDataContract);
             }
             else if (type == typeof(ClassDataContract))
             {
                 contract = new JsonClassDataContract((ClassDataContract) traditionalDataContract);
             }
             else if (type == typeof(EnumDataContract))
             {
                 contract = new JsonEnumDataContract((EnumDataContract) traditionalDataContract);
             }
             else if ((type == typeof(GenericParameterDataContract)) || (type == typeof(SpecialTypeDataContract)))
             {
                 contract = new JsonDataContract(traditionalDataContract);
             }
             else if (type == typeof(CollectionDataContract))
             {
                 contract = new JsonCollectionDataContract((CollectionDataContract) traditionalDataContract);
             }
             else
             {
                 if (type != typeof(XmlDataContract))
                 {
                     throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument("traditionalDataContract", System.Runtime.Serialization.SR.GetString("JsonTypeNotSupportedByDataContractJsonSerializer", new object[] { traditionalDataContract.UnderlyingType }));
                 }
                 contract = new JsonXmlDataContract((XmlDataContract) traditionalDataContract);
             }
         }
         return contract;
     }
 }
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:60,代码来源:JsonDataContract.cs


注:本文中的System.Runtime.Serialization.DataContract.GetType方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。