public static string GetClientProxyScript(Type type, string path, bool debug, ServiceEndpoint serviceEndpoint)
        {
            if (type == null)
            {
                throw new ArgumentNullException("type");
            }
            if (path == null)
            {
                throw new ArgumentNullException("path");
            }
            WebServiceData       webServiceData = null;
            ClientProxyGenerator proxyGenerator = null;

            if (IsWebServiceType(type))
            {
                proxyGenerator = new WebServiceClientProxyGenerator(path, debug);
                webServiceData = new WebServiceData(type, false);
            }
            else if (IsPageType(type))
            {
                proxyGenerator = new PageClientProxyGenerator(path, debug);
                webServiceData = new WebServiceData(type, true);
            }
            else if (IsWCFServiceType(type))
            {
                // invoke the WCFServiceClientProxyGenerator.GetClientProxyScript method using reflection
                Assembly wcfWebAssembly = Assembly.Load(AssemblyRef.SystemServiceModelWeb);
                if (wcfWebAssembly != null)
                {
                    Type wcfProxyType = wcfWebAssembly.GetType(WCFProxyTypeName);
                    if (wcfProxyType != null)
                    {
                        MethodInfo getClientProxyMethod = wcfProxyType.GetMethod(WCFProxyMethodName, BindingFlags.Static | BindingFlags.NonPublic);
                        if (getClientProxyMethod != null)
                        {
                            return(getClientProxyMethod.Invoke(null, new object[] { type, path, debug, serviceEndpoint }) as string);
                        }
                    }
                }

                // in case the reflection fails, we should throw unsupported exception
                throw new ArgumentException(String.Format(CultureInfo.CurrentCulture,
                                                          AtlasWeb.ProxyGenerator_UnsupportedType,
                                                          type.FullName));
            }
            else
            {
                throw new ArgumentException(String.Format(CultureInfo.CurrentCulture,
                                                          AtlasWeb.ProxyGenerator_UnsupportedType,
                                                          type.FullName));
            }
            return(proxyGenerator.GetClientProxyScript(webServiceData));
        }
        internal static string GetClientProxyScript(HttpContext context, IPage page, bool debug) {
            // Do nothing during unit tests which have no context or page
            if (context == null || page == null) return null;

            WebServiceData webServiceData = WebServiceData.GetWebServiceData(context,
                page.AppRelativeVirtualPath,
                false /*failIfNoData*/,
                true /*pageMethods */);
            if (webServiceData == null)
                return null;

            PageClientProxyGenerator proxyGenerator = new PageClientProxyGenerator(page, debug);
            return proxyGenerator.GetClientProxyScript(webServiceData);
        }
Ejemplo n.º 3
0
        public static string GetClientProxyScript(Type type, string path, bool debug, ServiceEndpoint serviceEndpoint) {
            if (type ==  null) {
                throw new ArgumentNullException("type");
            }
            if (path == null) {
                throw new ArgumentNullException("path");
            }
            WebServiceData webServiceData = null; 
            ClientProxyGenerator proxyGenerator = null;
            if (IsWebServiceType(type)) {
                proxyGenerator = new WebServiceClientProxyGenerator(path, debug);
                webServiceData = new WebServiceData(type, false);
            }
            else if (IsPageType(type)) {
                proxyGenerator = new PageClientProxyGenerator(path, debug);
                webServiceData = new WebServiceData(type, true);
            }
            else if(IsWCFServiceType(type)) {
                // invoke the WCFServiceClientProxyGenerator.GetClientProxyScript method using reflection
                Assembly wcfWebAssembly = Assembly.Load(AssemblyRef.SystemServiceModelWeb);
                if (wcfWebAssembly != null) {
                    Type wcfProxyType = wcfWebAssembly.GetType(WCFProxyTypeName);
                    if (wcfProxyType != null) {
                        MethodInfo getClientProxyMethod = wcfProxyType.GetMethod(WCFProxyMethodName, BindingFlags.Static | BindingFlags.NonPublic);
                        if (getClientProxyMethod != null) {     
                            return getClientProxyMethod.Invoke(null, new object[] { type, path, debug, serviceEndpoint }) as string;
                        }
                    }
                }

                // in case the reflection fails, we should throw unsupported exception
                throw new ArgumentException(String.Format(CultureInfo.CurrentCulture,
                    AtlasWeb.ProxyGenerator_UnsupportedType,
                    type.FullName));
            }
            else {
                throw new ArgumentException(String.Format(CultureInfo.CurrentCulture,
                    AtlasWeb.ProxyGenerator_UnsupportedType, 
                    type.FullName));
            }
            return proxyGenerator.GetClientProxyScript(webServiceData);
        }
Ejemplo n.º 4
0
        internal static string GetClientProxyScript(HttpContext context, IPage page, bool debug)
        {
            // Do nothing during unit tests which have no context or page
            if (context == null || page == null)
            {
                return(null);
            }

            WebServiceData webServiceData = WebServiceData.GetWebServiceData(context,
                                                                             page.AppRelativeVirtualPath,
                                                                             false /*failIfNoData*/,
                                                                             true /*pageMethods */);

            if (webServiceData == null)
            {
                return(null);
            }

            PageClientProxyGenerator proxyGenerator = new PageClientProxyGenerator(page, debug);

            return(proxyGenerator.GetClientProxyScript(webServiceData));
        }