public override Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver knownTypeResolver)
 {
     return(knownTypeResolver.ResolveName(typeName, typeNamespace, declaredType, null));
 }
 public DataContractSerializer(Type type, XmlDictionaryString rootName, XmlDictionaryString rootNamespace, IEnumerable<Type> knownTypes, int maxItemsInObjectGraph, bool ignoreExtensionDataObject, bool preserveObjectReferences, DataContractResolver dataContractResolver);
        public override Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver KTResolver)
        {
            Type t = KTResolver.ResolveName(typeName, typeNamespace, declaredType, null);

            if (t == null)
            {
                try
                {
                    t = Type.GetType(typeName + "," + typeNamespace);
                }
                catch (Exception)
                {
                    return(null);
                }
            }

            return(t);
        }
        public override bool TryResolveType(Type dataContractType, Type declaredType, DataContractResolver knownTypeResolver, out XmlDictionaryString typeName, out XmlDictionaryString typeNamespace)
        {
            XmlDictionary dic = new XmlDictionary();

            if (dataContractType == typeof(EmptyNsContainer))
            {
                typeName      = dic.Add("EmptyNsContainer");
                typeNamespace = dic.Add("MyNamespace");
                return(true);
            }
            else if (dataContractType == typeof(UknownEmptyNSAddress))
            {
                typeName      = dic.Add("AddressFoo");
                typeNamespace = dic.Add("");
                return(true);
            }
            else
            {
                return(knownTypeResolver.TryResolveType(dataContractType, declaredType, null, out typeName, out typeNamespace));
            }
        }
 public override Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver KTResolver)
 {
     throw new NotImplementedException("Deserialization is supposed to be handled by the SimpleResolver_DeSer resolver.");
 }
        public override Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver KTResolver)
        {
            if (typeNamespace.Equals(s_defaultNs))
            {
                if (typeName.Equals(typeof(DCRVariations).FullName))
                {
                    return(typeof(DCRVariations));
                }
                if (typeName.Equals(typeof(Person).FullName))
                {
                    return(typeof(Person));
                }
                if (typeName.Equals(typeof(SimpleDC).FullName))
                {
                    return(typeof(SimpleDC));
                }
            }

            return(KTResolver.ResolveName(typeName, typeNamespace, declaredType, null));
        }
Exemple #7
0
        // Used at deserialization
        public override Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver knownTypeResolver)
        {
            if (knownTypeResolver == null)
            {
                throw new ArgumentNullException("knownTypeResolver");
            }

            Type t = knownTypeResolver.ResolveName(typeName, typeNamespace, declaredType, null);

            if (t != null)
            {
                return(t);
            }

            foreach (Type type in types)
            {
                if (type.FullName == typeName && type.Assembly.FullName == typeNamespace)
                {
                    return(type);
                }
            }

            return(null);
        }
 public abstract bool TryResolveType(Type type, Type declaredType, DataContractResolver knownTypeResolver, out XmlDictionaryString typeName, out XmlDictionaryString typeNamespace);
Exemple #9
0
 /// <summary>
 /// Try to resolve an types <see cref="ResolveName"/> fails to.
 /// </summary>
 /// <returns>
 /// The type the xsi:type name and namespace is mapped to.
 /// </returns>
 /// <param name="typeName">The xsi:type name to map.</param>
 /// <param name="typeNamespace">The xsi:type namespace to map.</param>
 /// <param name="declaredType">The type declared in the data contract.</param>
 /// <param name="knownTypeResolver">The known type resolver.</param>
 protected abstract Type ResolveUnResolvedName(string typeName, string typeNamespace, Type declaredType, DataContractResolver knownTypeResolver);
Exemple #10
0
        /// <summary>
        /// Maps a data contract type to an xsi:type name and namespace during serialization.
        /// </summary>
        /// <param name="dataContractType">The type to map.</param>
        /// <param name="declaredType">The type declared in the data contract.</param>
        /// <param name="knownTypeResolver">The known type resolver.</param>
        /// <param name="typeName">The xsi:type name.</param>
        /// <param name="typeNamespace">The xsi:type namespace.</param>
        /// <returns>true if mapping succeeded; otherwise, false.</returns>
        public override bool TryResolveType(Type dataContractType, Type declaredType, DataContractResolver knownTypeResolver, out XmlDictionaryString typeName, out XmlDictionaryString typeNamespace)
        {
            if (dataContractType == typeof(ServiceResponse))
            {
                XmlDictionary dictionary = new XmlDictionary();
                typeName      = dictionary.Add("ServiceResponse");
                typeNamespace = dictionary.Add(ServiceNamespace);
                return(true);
            }

            if (dataContractType == typeof(ServiceRequest <TAuthenticationToken>))
            {
                XmlDictionary dictionary = new XmlDictionary();
                typeName      = dictionary.Add("ServiceRequest");
                typeNamespace = dictionary.Add(ServiceNamespace);
                return(true);
            }

            bool result = TokenResolver.TryResolveType(dataContractType, declaredType, knownTypeResolver, out typeName, out typeNamespace);

            if (result)
            {
                return(true);
            }

            result = EventDataResolver.TryResolveType(dataContractType, declaredType, knownTypeResolver, out typeName, out typeNamespace);
            if (result)
            {
                return(true);
            }

            result = TryResolveUnResolvedType(dataContractType, declaredType, knownTypeResolver, ref typeName, ref typeNamespace);
            if (result)
            {
                return(true);
            }

            // Defer to the known type resolver
            return(knownTypeResolver.TryResolveType(dataContractType, declaredType, null, out typeName, out typeNamespace));
        }
Exemple #11
0
        /// <summary>
        /// Maps the specified xsi:type name and namespace to a data contract type during deserialization.
        /// </summary>
        /// <returns>
        /// The type the xsi:type name and namespace is mapped to.
        /// </returns>
        /// <param name="typeName">The xsi:type name to map.</param>
        /// <param name="typeNamespace">The xsi:type namespace to map.</param>
        /// <param name="declaredType">The type declared in the data contract.</param>
        /// <param name="knownTypeResolver">The known type resolver.</param>
        public override Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver knownTypeResolver)
        {
            if (typeNamespace == ServiceNamespace)
            {
                if (typeName == "ServiceResponse")
                {
                    return(typeof(ServiceResponse));
                }

                if (typeName == "ServiceRequest")
                {
                    return(typeof(ServiceRequest <TAuthenticationToken>));
                }
            }

            Type result = TokenResolver.ResolveName(typeName, typeNamespace, declaredType, knownTypeResolver);

            if (result != null)
            {
                return(result);
            }

            result = EventDataResolver.ResolveName(typeName, typeNamespace, declaredType, knownTypeResolver);
            if (result != null)
            {
                return(result);
            }

            result = ResolveUnResolvedName(typeName, typeNamespace, declaredType, knownTypeResolver);
            if (result != null)
            {
                return(result);
            }

            // Defer to the known type resolver
            return(knownTypeResolver.ResolveName(typeName, typeNamespace, declaredType, null));
        }
Exemple #12
0
 /// <summary>
 /// Try to resolve an types <see cref="TryResolveType"/> fails to.
 /// </summary>
 /// <param name="dataContractType">The type to map.</param>
 /// <param name="declaredType">The type declared in the data contract.</param>
 /// <param name="knownTypeResolver">The known type resolver.</param>
 /// <param name="typeName">The xsi:type name.</param>
 /// <param name="typeNamespace">The xsi:type namespace.</param>
 /// <returns>true if mapping succeeded; otherwise, false.</returns>
 protected abstract bool TryResolveUnResolvedType(Type dataContractType, Type declaredType, DataContractResolver knownTypeResolver, ref XmlDictionaryString typeName, ref XmlDictionaryString typeNamespace);
Exemple #13
0
        /// <summary>During deserialization, maps any xsi:type information to the actual type of the persistence-ignorant object. </summary>
        /// <returns>Returns the type that the xsi:type is mapped to. Returns null if no known type was found that matches the xsi:type.</returns>
        /// <param name="typeName">The xsi:type information to map.</param>
        /// <param name="typeNamespace">The namespace of the xsi:type.</param>
        /// <param name="declaredType">The declared type.</param>
        /// <param name="knownTypeResolver">
        ///     An instance of <see cref="T:System.Data.Entity.Core.Objects.ProxyDataContractResolver" />.
        /// </param>
        public override Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver knownTypeResolver)
        {
            Check.NotEmpty(typeName, "typeName");
            Check.NotEmpty(typeNamespace, "typeNamespace");
            Check.NotNull(declaredType, "declaredType");
            Check.NotNull(knownTypeResolver, "knownTypeResolver");

            return(knownTypeResolver.ResolveName(typeName, typeNamespace, declaredType, null));
        }
 public abstract bool TryResolveType(Type type, Type declaredType, DataContractResolver knownTypeResolver, out XmlDictionaryString typeName, out XmlDictionaryString typeNamespace);
Exemple #15
0
 public override Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver knownTypeResolver)
 {
     if (m_NamesToType.ContainsKey(typeNamespace))
     {
         if (m_NamesToType[typeNamespace].ContainsKey(typeName))
         {
             return(m_NamesToType[typeNamespace][typeName]);
         }
     }
     return(knownTypeResolver.ResolveName(typeName, typeNamespace, declaredType, null));
 }
 public override Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver knownTypeResolver)
 {
     return knownTypeResolver.ResolveName(typeName, typeNamespace, declaredType, null) ?? Type.GetType(typeName + ", " + typeNamespace);
 }
Exemple #17
0
 public override Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver knownTypeResolver)
 {
     if (typeName == this.Name && typeNamespace == this.Namespace)
     {
         return(typeof(Manager));
     }
     else
     {
         return(knownTypeResolver.ResolveName(typeName, typeNamespace, declaredType, null));
     }
 }
        public override Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver KTResolver)
        {
            if (typeNamespace.Equals("http://www.default.com"))
            {
                if (typeName.Equals("UserType"))
                {
                    return(typeof(UserTypeContainer));
                }
            }
            if (typeNamespace.Equals("http://www.w3.org/2001/XMLSchema") && typeName.Equals("int"))
            {
                return(typeof(UnknownEmployee));
            }

            return(KTResolver.ResolveName(typeName, typeNamespace, declaredType, null));
        }
 public override bool TryResolveType(Type dataContractType, Type declaredType, DataContractResolver knownTypeResolver, out XmlDictionaryString typeName, out XmlDictionaryString typeNamespace)
 {
     if (!knownTypeResolver.TryResolveType(dataContractType, declaredType, null, out typeName, out typeNamespace))
     {
         var dictionary = new XmlDictionary();
         typeName      = dictionary.Add(dataContractType.FullName);
         typeNamespace = dictionary.Add(dataContractType.Assembly.FullName);
     }
     return(true);
 }
 public override bool TryResolveType(Type dcType, Type declaredType, DataContractResolver KTResolver, out XmlDictionaryString typeName, out XmlDictionaryString typeNamespace)
 {
     throw new NotImplementedException("Serialization is supposed to be handled by the SimpleResolver_Ser resolver.");
 }
 public override Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver knownTypeResolver)
 {
     throw new NotImplementedException();
 }
 public override Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver KTResolver)
 {
     return(s_types[typeName]);
 }
 public override bool TryResolveType(Type type, Type declaredType, DataContractResolver knownTypeResolver, out XmlDictionaryString typeName, out XmlDictionaryString typeNamespace)
 {
     throw new NotImplementedException();
 }
        public override Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver KTResolver)
        {
            if (typeNamespace.Equals(s_defaultNs))
            {
                if (typeName.Equals(typeof(Person).FullName))
                {
                    return(typeof(Person));
                }
                if (typeName.Equals(typeof(CharClass).FullName))
                {
                    return(typeof(CharClass));
                }
                if (typeName.Equals("System.String"))
                {
                    return(typeof(string));
                }
                if (typeName.Equals(typeof(Version1).FullName))
                {
                    return(typeof(Version1));
                }
                if (typeName.Equals(typeof(Employee).FullName))
                {
                    return(typeof(Employee));
                }
            }

            return(KTResolver.ResolveName(typeName, typeNamespace, declaredType, null));
        }
Exemple #25
0
        public override Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver knownTypeResolver)
        {
            if (string.Compare(typeNamespace, _xmlNamespace, StringComparison.OrdinalIgnoreCase) == 0)
            {
                Assembly containingAssembly;
                if (_typeToAssemblyLookup.TryGetValue(typeName, out containingAssembly))
                {
                    var type = containingAssembly.GetType(typeName);
                    if (type != null)
                    {
                        return(type);
                    }
                }
            }

            return(knownTypeResolver.ResolveName(typeName, typeNamespace, declaredType, null));
        }
        public override Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver knownTypeResolver)
        {
            if (typeNamespace == "MyNamespace")
            {
                switch (typeName)
                {
                case "EmptyNsContainer":
                    return(typeof(EmptyNsContainer));
                }
            }
            else if (typeName.Equals("AddressFoo"))
            {
                return(typeof(UknownEmptyNSAddress));
            }

            return(knownTypeResolver.ResolveName(typeName, typeNamespace, declaredType, null));
        }
Exemple #27
0
        // Used at deserialization
        // Allows users to map xsi:type name to any Type
        public override Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver knownTypeResolver)
        {
            XmlDictionaryString tName;
            XmlDictionaryString tNamespace;

            // If the type is found in the dictionary then extract it from the assembly. Use the default KnownTypeResolver otherwise.
            if (dictionary.TryLookup(typeName, out tName) && dictionary.TryLookup(typeNamespace, out tNamespace))
            {
                return(this.assembly.GetType(tNamespace.Value + "." + tName.Value));
            }
            else
            {
                return(knownTypeResolver.ResolveName(typeName, typeNamespace, declaredType, null));
            }
        }
        public override bool TryResolveType(Type dataContractType, Type declaredType, DataContractResolver knownTypeResolver, out XmlDictionaryString typeName, out XmlDictionaryString typeNamespace)
        {
            Type actualDataContractType = dataContractType.Name.EndsWith("Proxy") ? dataContractType.BaseType : dataContractType;

            return(knownTypeResolver.TryResolveType(actualDataContractType, declaredType, null, out typeName, out typeNamespace));
        }
Exemple #29
0
        public virtual Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver knownTypeResolver)
        {
            if (typeName == "EventData" && typeNamespace == "http://cqrs.co.nz")
            {
                return(typeof(EventData));
            }

            if (typeName == "EventDataGetRequest" && typeNamespace == "http://cqrs.co.nz")
            {
                return(typeof(ServiceRequestWithData <TAuthenticationToken, Guid>));
            }

            if (typeName == "EventDataGetResponse" && typeNamespace == "http://cqrs.co.nz")
            {
                return(typeof(ServiceResponseWithResultData <IEnumerable <EventData> >));
            }

            return(null);
        }
 public abstract Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver knownTypeResolver);
        public override Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver KTResolver)
        {
            if (typeNamespace.Equals("http://www.default.com"))
            {
                if (typeName.Equals("POCO"))
                {
                    return(typeof(POCOObjectContainer));
                }
            }
            if (typeName.Equals("Person"))
            {
                throw new InvalidOperationException("Member with attribute 'IgnoreDataMember' should be ignored during deser");
            }
            Type result = KTResolver.ResolveName(typeName, typeNamespace, declaredType, null);

            return(result);
        }
        public override Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver knownTypeResolver)
        {
            string fullName = typeName;

            if (!string.IsNullOrEmpty(typeNamespace))
            {
                Uri    uri          = new Uri(typeNamespace);
                string clrNamespace = uri.Segments.Last();
                fullName = clrNamespace + "." + typeName;
            }

            if (!this.typeMap.TryGetValue(fullName, out Type t))
            {
                t = knownTypeResolver.ResolveName(typeName, typeNamespace, declaredType, knownTypeResolver);
            }

            return(t);
        }
        public override Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver KTResolver)
        {
            Type t = null;

            if (typeName.Contains("***"))
            {
                t = _type;
            }
            else
            {
                t = KTResolver.ResolveName(typeName, typeNamespace, declaredType, null);
                if (t == null)
                {
                    t = Type.GetType(typeName + "," + typeNamespace);
                }
            }
            return(t);
        }
    public override bool TryResolveType(Type dataContractType, Type declaredType, DataContractResolver knownTypeResolver, out XmlDictionaryString typeName, out XmlDictionaryString typeNamespace)
    {
        if (!knownTypeResolver.TryResolveType(dataContractType, declaredType, null, out typeName, out typeNamespace))
        {

            XmlDictionary dictionary = new XmlDictionary();

            typeName = dictionary.Add(dataContractType.FullName);

            typeNamespace = dictionary.Add(dataContractType.Assembly.FullName);

        }

        return true;
    }
 public abstract Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver knownTypeResolver);