internal static SoapExtension[] CreateExtensionChain (SoapExtensionRuntimeConfig[] extensionConfigs) { if (extensionConfigs == null) return null; SoapExtension[] res = new SoapExtension [extensionConfigs.Length]; CreateExtensionChain (extensionConfigs, res, 0); return res; }
internal static SoapExtensionRuntimeConfig[][] GetTypeExtensions(Type serviceType) { if (globalExtensions == null) { InitializeGlobalExtensions(); } SoapExtensionRuntimeConfig[][] exts = new SoapExtensionRuntimeConfig[2][]; for (int group = 0; group < 2; group++) { ArrayList globList = globalExtensions[group]; if (globList == null) { continue; } exts [group] = new SoapExtensionRuntimeConfig [globList.Count]; for (int n = 0; n < globList.Count; n++) { SoapExtensionTypeElement econf = (SoapExtensionTypeElement)globList [n]; SoapExtensionRuntimeConfig typeconf = new SoapExtensionRuntimeConfig(); typeconf.Type = econf.Type; SoapExtension ext = (SoapExtension)Activator.CreateInstance(econf.Type); typeconf.InitializationInfo = ext.GetInitializer(serviceType); exts [group][n] = typeconf; } } return(exts); }
static int CreateExtensionChain(SoapExtensionRuntimeConfig[] extensionConfigs, SoapExtension[] destArray, int pos) { for (int n = 0; n < extensionConfigs.Length; n++) { SoapExtensionRuntimeConfig econf = extensionConfigs [n]; SoapExtension ext = (SoapExtension)Activator.CreateInstance(econf.Type); ext.Initialize(econf.InitializationInfo); destArray [pos++] = ext; } return(pos); }
internal static SoapExtension[] CreateExtensionChain (SoapExtensionRuntimeConfig[] hiPrioExts, SoapExtensionRuntimeConfig[] medPrioExts, SoapExtensionRuntimeConfig[] lowPrioExts) { int len = 0; if (hiPrioExts != null) len += hiPrioExts.Length; if (medPrioExts != null) len += medPrioExts.Length; if (lowPrioExts != null) len += lowPrioExts.Length; if (len == 0) return null; SoapExtension[] res = new SoapExtension [len]; int pos = 0; if (hiPrioExts != null) pos = CreateExtensionChain (hiPrioExts, res, pos); if (medPrioExts != null) pos = CreateExtensionChain (medPrioExts, res, pos); if (lowPrioExts != null) pos = CreateExtensionChain (lowPrioExts, res, pos); return res; }
internal static SoapExtensionRuntimeConfig[] GetMethodExtensions(LogicalMethodInfo method) { object[] ats = method.GetCustomAttributes(typeof(SoapExtensionAttribute)); SoapExtensionRuntimeConfig[] exts = new SoapExtensionRuntimeConfig [ats.Length]; int[] priorities = new int[ats.Length]; for (int n = 0; n < ats.Length; n++) { SoapExtensionAttribute at = (SoapExtensionAttribute)ats[n]; SoapExtensionRuntimeConfig econf = new SoapExtensionRuntimeConfig(); econf.Type = at.ExtensionType; priorities [n] = at.Priority; SoapExtension ext = (SoapExtension)Activator.CreateInstance(econf.Type); econf.InitializationInfo = ext.GetInitializer(method, at); exts [n] = econf; } Array.Sort(priorities, exts); return(exts); }
static int CreateExtensionChain (SoapExtensionRuntimeConfig[] extensionConfigs, SoapExtension[] destArray, int pos) { for (int n=0; n<extensionConfigs.Length; n++) { SoapExtensionRuntimeConfig econf = extensionConfigs [n]; SoapExtension ext = (SoapExtension) Activator.CreateInstance (econf.Type); ext.Initialize (econf.InitializationInfo); destArray [pos++] = ext; } return pos; }
internal static SoapExtensionRuntimeConfig[] GetMethodExtensions (LogicalMethodInfo method) { object[] ats = method.GetCustomAttributes (typeof (SoapExtensionAttribute)); SoapExtensionRuntimeConfig[] exts = new SoapExtensionRuntimeConfig [ats.Length]; int[] priorities = new int[ats.Length]; for (int n=0; n<ats.Length; n++) { SoapExtensionAttribute at = (SoapExtensionAttribute) ats[n]; SoapExtensionRuntimeConfig econf = new SoapExtensionRuntimeConfig (); econf.Type = at.ExtensionType; priorities [n] = at.Priority; SoapExtension ext = (SoapExtension) Activator.CreateInstance (econf.Type); econf.InitializationInfo = ext.GetInitializer (method, at); exts [n] = econf; } Array.Sort (priorities, exts); return exts; }
internal static SoapExtensionRuntimeConfig[][] GetTypeExtensions (Type serviceType) { if (globalExtensions == null) InitializeGlobalExtensions(); SoapExtensionRuntimeConfig[][] exts = new SoapExtensionRuntimeConfig[2][]; for (int group = 0; group < 2; group++) { ArrayList globList = globalExtensions[group]; if (globList == null) continue; exts [group] = new SoapExtensionRuntimeConfig [globList.Count]; for (int n=0; n<globList.Count; n++) { SoapExtensionTypeElement econf = (SoapExtensionTypeElement) globList [n]; SoapExtensionRuntimeConfig typeconf = new SoapExtensionRuntimeConfig (); typeconf.Type = econf.Type; SoapExtension ext = (SoapExtension) Activator.CreateInstance (econf.Type); typeconf.InitializationInfo = ext.GetInitializer (serviceType); exts [group][n] = typeconf; } } return exts; }