private static void ConfigureReaderQuotas(ProxyConfiguration configuration, XmlDictionaryReaderQuotas readerQuotas) { readerQuotas.MaxArrayLength = configuration.MaxArrayLength; readerQuotas.MaxBytesPerRead = configuration.MaxBytesPerRead; readerQuotas.MaxDepth = configuration.MaxDepth; readerQuotas.MaxNameTableCharCount = configuration.MaxNameTableCharCount; readerQuotas.MaxStringContentLength = configuration.MaxStringContentLength; }
public Binding CreateBinding(ProxyConfiguration configuration) { var binding = (Binding)Activator.CreateInstance(configuration.BindingType); if (binding is WSHttpBinding) { var b = ((WSHttpBinding)binding); b.Security.Mode = SecurityMode.None; b.MaxReceivedMessageSize = configuration.MaxReceivedMessageSize; b.MessageEncoding = configuration.MessageEncoding; ConfigureReaderQuotas(configuration, b.ReaderQuotas); } else if (binding is NetTcpBinding) { var b = ((NetTcpBinding)binding); b.Security.Mode = SecurityMode.None; b.MaxReceivedMessageSize = configuration.MaxReceivedMessageSize; ConfigureReaderQuotas(configuration, b.ReaderQuotas); } else if (binding is BasicHttpBinding) { var b = ((BasicHttpBinding)binding); b.Security.Mode = BasicHttpSecurityMode.None; b.MaxReceivedMessageSize = configuration.MaxReceivedMessageSize; b.MessageEncoding = configuration.MessageEncoding; ConfigureReaderQuotas(configuration, b.ReaderQuotas); } else if (binding is WebHttpBinding) { var b = ((WebHttpBinding)binding); b.Security.Mode = WebHttpSecurityMode.None; b.MaxReceivedMessageSize = configuration.MaxReceivedMessageSize; ConfigureReaderQuotas(configuration, b.ReaderQuotas); } binding.ReceiveTimeout = configuration.ReceiveTimeout; binding.SendTimeout = configuration.SendTimeout; binding.OpenTimeout = configuration.OpenTimeout; return binding; }
private static VirtualFile GetVirtualFile(string virtualPath) { WcfVirtualFile vf; if (WcfVirtualFileCache.TryGetValue(virtualPath, out vf)) { return vf; } lock (Lock) { if (!WcfVirtualFileCache.ContainsKey(virtualPath)) { var serviceName = Path.GetFileNameWithoutExtension(virtualPath); var pc = new ProxyConfiguration(new Config(), serviceName); vf = new WcfVirtualFile(virtualPath, pc.ServiceTypeName, typeof(VirtualWcfFactory).FullName); WcfVirtualFileCache.Add(virtualPath, vf); return vf; } return WcfVirtualFileCache[virtualPath]; } }
public static ProxyConfiguration Create(IConfig config, string serviceName, string instance = null) { var proxyConfig = new ProxyConfiguration(config, serviceName, instance); return proxyConfig.Address == null ? null : proxyConfig; }