System.Runtime.Serialization.XmlObjectSerializer.TryAddLineInfo C# (CSharp) Method

TryAddLineInfo() static private method

static private TryAddLineInfo ( System.Runtime.Serialization.XmlReaderDelegator reader, string errorMessage ) : string
reader System.Runtime.Serialization.XmlReaderDelegator
errorMessage string
return string
        internal static string TryAddLineInfo(XmlReaderDelegator reader, string errorMessage)
        {
            if (reader.HasLineInfo())
                return String.Format(CultureInfo.InvariantCulture, "{0} {1}", SR.Format(SR.ErrorInLine, reader.LineNumber, reader.LinePosition), errorMessage);
            return errorMessage;
        }

Usage Example

コード例 #1
0
        private object?InternalDeserializeInSharedTypeMode(XmlReaderDelegator xmlReader, int declaredTypeID, Type declaredType, string?name, string?ns)
        {
            Debug.Assert(attributes != null);

            object?retObj = null;

            if (TryHandleNullOrRef(xmlReader, declaredType, name, ns, ref retObj))
            {
                return(retObj);
            }

            DataContract dataContract;
            string?      assemblyName = attributes.ClrAssembly;
            string?      typeName     = attributes.ClrType;

            if (assemblyName != null && typeName != null)
            {
                Assembly     assembly;
                Type         type;
                DataContract?tempDataContract = ResolveDataContractInSharedTypeMode(assemblyName, typeName, out assembly, out type);
                if (tempDataContract == null)
                {
                    if (assembly == null)
                    {
                        throw XmlObjectSerializer.CreateSerializationException(SR.Format(SR.AssemblyNotFound, assemblyName));
                    }

                    throw XmlObjectSerializer.CreateSerializationException(SR.Format(SR.ClrTypeNotFound, assembly.FullName, typeName));
                }

                dataContract = tempDataContract;
                //Array covariance is not supported in XSD. If declared type is array, data is sent in format of base array
                if (declaredType != null && declaredType.IsArray)
                {
                    dataContract = (declaredTypeID < 0) ? GetDataContract(declaredType) : GetDataContract(declaredTypeID, declaredType.TypeHandle);
                }
            }
            else
            {
                if (assemblyName != null)
                {
                    throw XmlObjectSerializer.CreateSerializationException(XmlObjectSerializer.TryAddLineInfo(xmlReader, SR.Format(SR.AttributeNotFound, Globals.SerializationNamespace, Globals.ClrTypeLocalName, xmlReader.NodeType, xmlReader.NamespaceURI, xmlReader.LocalName)));
                }
                else if (typeName != null)
                {
                    throw XmlObjectSerializer.CreateSerializationException(XmlObjectSerializer.TryAddLineInfo(xmlReader, SR.Format(SR.AttributeNotFound, Globals.SerializationNamespace, Globals.ClrAssemblyLocalName, xmlReader.NodeType, xmlReader.NamespaceURI, xmlReader.LocalName)));
                }
                else if (declaredType == null)
                {
                    throw XmlObjectSerializer.CreateSerializationException(XmlObjectSerializer.TryAddLineInfo(xmlReader, SR.Format(SR.AttributeNotFound, Globals.SerializationNamespace, Globals.ClrTypeLocalName, xmlReader.NodeType, xmlReader.NamespaceURI, xmlReader.LocalName)));
                }
                dataContract = (declaredTypeID < 0) ? GetDataContract(declaredType) : GetDataContract(declaredTypeID, declaredType.TypeHandle);
            }
            return(ReadDataContractValue(dataContract, xmlReader));
        }
All Usage Examples Of System.Runtime.Serialization.XmlObjectSerializer::TryAddLineInfo