System.Runtime.Serialization.DataContractSet.GetDataContract C# (CSharp) Method

GetDataContract() private method

private GetDataContract ( Type clrType ) : System.Runtime.Serialization.DataContract
clrType Type
return System.Runtime.Serialization.DataContract
        internal DataContract GetDataContract(Type clrType)
        {
#if SUPPORT_SURROGATE
            if (_dataContractSurrogate == null)
                return DataContract.GetDataContract(clrType);
#endif
            DataContract dataContract = DataContract.GetBuiltInDataContract(clrType);
            if (dataContract != null)
                return dataContract;

#if SUPPORT_SURROGATE
            Type dcType = DataContractSurrogateCaller.GetDataContractType(_dataContractSurrogate, clrType);
            if (clrType.IsValueType != dcType.IsValueType)
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidDataContractException(SR.GetString(SR.ValueTypeMismatchInSurrogatedType, dcType, clrType)));
#endif
            Type dcType = clrType;
            dataContract = DataContract.GetDataContract(dcType);
#if SUPPORT_SURROGATE
            if (!SurrogateDataTable.Contains(dataContract))
            {
                object customData = DataContractSurrogateCaller.GetCustomDataToExport(
                                      _dataContractSurrogate, clrType, dcType);
                if (customData != null)
                    SurrogateDataTable.Add(dataContract, customData);
            }
#endif
            return dataContract;
        }

Usage Example

コード例 #1
0
        internal DataContract FindDataContract(XmlQualifiedName typeName)
        {
            if (typeName == null)
            {
                throw ExceptionUtil.ThrowHelperError(new ArgumentNullException(nameof(typeName)));
            }

            DataContract?dataContract = DataContract.GetBuiltInDataContract(typeName.Name, typeName.Namespace);

            if (dataContract == null)
            {
                dataContract = DataContractSet.GetDataContract(typeName);
                if (dataContract == null)
                {
                    throw ExceptionUtil.ThrowHelperError(new InvalidOperationException(SR.Format(SR.TypeHasNotBeenImported, typeName.Name, typeName.Namespace)));
                }
            }
            return(dataContract);
        }