System.Runtime.Serialization.DataContractResolver.ResolveName C# (CSharp) Method

ResolveName() public abstract method

public abstract ResolveName ( string typeName, string typeNamespace, System declaredType, System knownTypeResolver ) : System.Type
typeName string
typeNamespace string
declaredType System
knownTypeResolver System
return 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

コード例 #1
0
        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