private static void Main(string[] args) { using (var log = new EnterExitLogger(s_log, Level.Info)) { try { var assembly = Assembly.LoadFile(args[0]); if (args.Length > 1) { for (var i = 1; i < args.Length; i++) { if (Directory.Exists(args[i])) { var assemblies = Directory.GetFiles(args[i], "*.dll"); foreach (var asm in assemblies) { Assembly.LoadFile(asm); } } else { Assembly.LoadFile(args[i]); } } } SoapClientTypeSerializer.DeserializeClientTypes(assembly); } catch (Exception exc) { s_log.Error(exc); } } }
/// <summary> /// Entry point of the application. /// </summary> /// <param name="args">The args.</param> /// <remarks> /// args[0]: assembly containing the web service proxies. /// args[1]: web service proxy constructor types (type names) /// </remarks> static void Main(string[] args) { using (var log = new EnterExitLogger(s_log, Level.Info)) { #if (false) Type[] exportedTypes = typeof(AkteWebService).Assembly.GetExportedTypes(); List <Type> webServiceTypes = new List <Type>(); foreach (Type type in exportedTypes) { if (type.IsAbstract) { continue; } WebServiceBindingAttribute[] serviceBindingAttributes = (WebServiceBindingAttribute[])type.GetCustomAttributes(typeof(WebServiceBindingAttribute), false); if (serviceBindingAttributes != null && serviceBindingAttributes.Length == 1) { webServiceTypes.Add(type); } } foreach (Type webServiceType in webServiceTypes) { SoapClientTypeSerializer.SerializeClientType(webServiceType); } #endif try { AppDomain.CurrentDomain.AssemblyResolve += CurrentDomainAssemblyResolve; var assembly = Assembly.LoadFile(args[0]); s_modelDirectory = Path.GetDirectoryName(assembly.Location); var serializerFileName = assembly.Location; serializerFileName = Path.ChangeExtension(serializerFileName, ".XmlSerializers.dll"); if (File.Exists(serializerFileName)) { var serializerAssembly = Assembly.LoadFile(serializerFileName); } if (args.Length > 1) { var constructorTypes = args[1].Split(new char[] { ';' }); foreach (var constructorType in constructorTypes) { var typeParts = constructorType.Split(new char[] { ',' }); Type type; if (typeParts.Length > 1) { var asmName = typeParts[1].Trim(); var asmPath = Path.Combine(s_modelDirectory, asmName); asmPath = Path.ChangeExtension(asmPath, ".dll"); //Assembly asm = Assembly.LoadFrom(Path.Combine(Path.GetDirectoryName(assembly.Location), "ObjectManagement.dll")); var asm = Assembly.LoadFile(asmPath); type = asm.GetType(typeParts[0]); } else { type = Type.GetType(constructorType); } if (type != null) { s_constructorTypes.Add(type); } } } var currentDirectory = Environment.CurrentDirectory; try { Environment.CurrentDirectory = Path.GetDirectoryName(assembly.Location); SoapClientTypeSerializer.Constructing += new EventHandler <ConstructorEventArgs>(SoapClientTypeSerializerConstructing); SoapClientTypeSerializer.SerializeClientTypes(assembly); } finally { Environment.CurrentDirectory = currentDirectory; } } catch (Exception exc) { log.Error(exc); } } }