示例#1
0
        private string GetProxyAddress(Type proxyType, XmlDocument mapFile)
        {
            ProxyTechnology proxyTech = ProxyFactoryHelper.GetProxyTechnology(proxyType);

            if (proxyTech == ProxyTechnology.Asmx)
            {
                SoapHttpClientProtocol proxy = (SoapHttpClientProtocol)Activator.CreateInstance(proxyType);
                if (proxy != null)
                {
                    return(proxy.Url);
                }
            }
            else if (proxyTech == ProxyTechnology.Wcf)
            {
                return(GetAddresFromMapFile(mapFile));
            }
            return(string.Empty);
        }
示例#2
0
        public static object GetProxyFactory(Type proxyType, string language)
        {
            object newValue = null;

            if (proxyType != null)
            {
                ProxyTechnology proxyTech = GetProxyTechnology(proxyType);
                if (proxyTech == ProxyTechnology.Asmx)
                {
                    newValue = WebServiceProxyFactoryName;
                }
                else if (proxyTech == ProxyTechnology.Wcf)
                {
                    Type genericImplementation = proxyType.BaseType;
                    while (genericImplementation != typeof(Object))
                    {
                        if (genericImplementation.IsGenericType &&
                            typeof(ClientBase <>).IsAssignableFrom(genericImplementation.GetGenericTypeDefinition()))
                        {
                            string wrappedServiceTypeName = string.Empty;
                            Type[] generigArguments       = genericImplementation.GetGenericArguments();
                            if (generigArguments.Length == 1)
                            {
                                wrappedServiceTypeName = generigArguments[0].FullName;
                            }

                            string clrNotationFactoryTypeName = WCFProxyFactoryGenericName;
                            string genericFactoryTypeName     = NotationHelper.RemoveTrailingCLRChars(clrNotationFactoryTypeName);
                            newValue = string.Format(GetSelectedLanguageGenericFormat(language), genericFactoryTypeName, wrappedServiceTypeName);
                            break;
                        }
                        genericImplementation = genericImplementation.BaseType;
                    }
                }

                if (newValue == null)
                {
                    newValue = ObjectProxyFactoryName;
                }
            }
            return(newValue);
        }