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)); }
// 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);
/// <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);
/// <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)); }
/// <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)); }
/// <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);
/// <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 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); }
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)); }
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)); }
// 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)); }
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; }