/// <summary> /// 自定义序列化加载类处理类 /// </summary> public class CustomSerializationBinder : SerializationBinder { public override Type BindToType(string assemblyName, string typeName) { string newAssemblyName = assemblyName; string[] asssemblyInfos = LibSysUtils.SplitString(assemblyName, ","); Assembly ass = null; if(asssemblyInfos != null && asssemblyInfos.Length > 0) { newAssemblyName = asssemblyInfos[0] + ".dll"; Assembly[] assemblys = AppDomain.CurrentDomain.GetAssemblies(); if(assemblys != null && assemblys.Length > 0) { foreach(Assembly curAssembly in assemblys) { string curAssemblyName = curAssembly.ManifestModule.Name; if(curAssemblyName.EndsWith(newAssemblyName, StringComparison.OrdinalIgnoreCase)) { ass = curAssembly; break; } } } } else { ass = Assembly.Load(newAssemblyName); } //newAssemblyName = newAssemblyName.Replace("PublicKeyToken=null", "PublicKeyToken=27eaf182a1fb4299"); if(ass == null) { throw new System.Exception(String.Format("序列化加载处理找不到程序集 {0}", assemblyName)); } Type result = ass.GetType(typeName); return result; } }
【代码片段】序列化和反序列化之自定义序列化加载类处理类
猜你喜欢
转载自blog.csdn.net/michelsn/article/details/80297741
今日推荐
周排行