System.Runtime.Serialization.DataContractResolver.ResolveName C# (CSharp) Метод

ResolveName() публичный абстрактный Метод

public abstract ResolveName ( string typeName, string typeNamespace, System declaredType, System knownTypeResolver ) : System.Type
typeName string
typeNamespace string
declaredType System
knownTypeResolver System
Результат System.Type
        public abstract System.Type ResolveName(string typeName, string typeNamespace, System.Type declaredType, System.Runtime.Serialization.DataContractResolver knownTypeResolver);
        public abstract bool TryResolveType(System.Type type, System.Type declaredType, System.Runtime.Serialization.DataContractResolver knownTypeResolver, out System.Xml.XmlDictionaryString typeName, out System.Xml.XmlDictionaryString typeNamespace);

Usage Example

        public override Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver knownTypeResolver)
        {
            if (!typeNamespace.StartsWith("http://tempuri.com"))
            {
                return knownTypeResolver.ResolveName(typeName, typeNamespace, declaredType, null);
            }
            string PluginName = typeNamespace.Substring("http://tempuri.com".Length + 1);
            System.Reflection.Assembly asm = AppDomain.CurrentDomain.GetAssemblies().FirstOrDefault(p => p.FullName == PluginName);

            var t = asm.GetTypes().Where(p => p.GetCustomAttributes(typeof(DataContractAttribute), false).Length > 0).FirstOrDefault(p => p.Name == typeName);
            if (t != null)
                return t;

            return knownTypeResolver.ResolveName(typeName, typeNamespace, declaredType, null);
        }
All Usage Examples Of System.Runtime.Serialization.DataContractResolver::ResolveName