Esempio n. 1
0
        public static string GetClientInitScriptPath(Uri uri, JsonProviderInfo info)//string varName, Type type)
        {
            string     varName = info.VarName;
            Type       type    = info.ProviderType;
            UriBuilder builder = new UriBuilder(uri.ToString());

            builder.Query = "init=true&t=" + GetClientTypeName(type) + "&varname=" + varName + "&ienocache=" + StringExtensions.RandomString(4, false, false);
            return(builder.ToString());
        }
Esempio n. 2
0
        /// <summary>
        /// Registers the proxy for the specified type onto the specified page
        /// using the specified varName.
        /// </summary>
        /// <param name="page">The Page</param>
        /// <param name="varName">The client side name of the proxy instance.</param>
        /// <param name="type">The .Net type to register</param>
        private static void RegisterClientInitScript(Page page, JsonProviderInfo info)
        {
            if (page == null)
            {
                return;
            }

            if (HttpContext.Current == null)
            {
                throw NewInvalidOperationException();
            }

            string scriptPath = GetClientInitScriptPath(page.Request.Url, info);

            page.ClientScript.RegisterClientScriptInclude(info.ClientTypeName, scriptPath);
        }
Esempio n. 3
0
        internal static void SetProvider(object handlerInstance, Page page)
        {
            Type serverHandler = handlerInstance.GetType();

            if (serverHandler == typeof(RuntimeTypeHandle))
            {
                return;
            }

            JsonProviders    providers = SingletonHelper.GetSessionSingleton <JsonProviders>();//if (javascriptHandlers == null)
            JsonProviderInfo provider  = providers.Add(handlerInstance);

            if (page != null)
            {
                RegisterClientInitScript(page, provider);
            }
        }
Esempio n. 4
0
            public JsonProviderInfo Add(object provider)
            {
                JsonProviderInfo info   = new JsonProviderInfo(provider);
                JsonProviderInfo retVal = info;

                lock (providerLock)
                {
                    if (providersByVarName.ContainsKey(info.VarName))
                    {
                        JsonProviderInfo registered = providersByVarName[info.VarName];
                        if (registered.ProviderType != info.ProviderType && !info.Namespace.StartsWith("ASP"))
                        {
                            throw ExceptionHelper.CreateException <JsonInvalidOperationException>(
                                      @"JsonProxy Var Name Already In Use: {0}, Type: {1}
                        Failed To Register: {0}, Type: {2}", registered.VarName, registered.ClientTypeName, info.VarName, info.ClientTypeName);
                        }
                        else if (info.Namespace.StartsWith("ASP"))
                        {
                            this.providersByTypeName[info.ClientTypeName] = info;
                            this.providersByVarName[info.VarName]         = info;
                            retVal = info;
                        }
                        else
                        {
                            retVal = registered;
                        }
                    }
                    else
                    {
                        this.providersByVarName.Add(info.VarName, info);
                        this.providersByTypeName.Add(info.ClientTypeName, info);
                    }
                }

                return(retVal);
            }