Пример #1
0
 internal void LoadHeader(AutoCSer.Net.HttpDomainServer.ViewServer domainServer, AutoCSer.Net.Http.SocketBase socket, CallMethodInfo callInfo)
 {
     DomainServer   = domainServer;
     Socket         = socket;
     SocketIdentity = socket.Identity;
     MethodInfo     = callInfo;
 }
Пример #2
0
        /// <summary>
        /// 加载查询参数
        /// </summary>
        internal unsafe void LoadAjax()
        {
            long identity = SocketIdentity;

            AutoCSer.Net.Http.SocketBase socket = Socket;
            try
            {
                if (loadView())
                {
                    if (!IsAsynchronous)
                    {
                        responseAjax();
                    }
                }
                else
                {
                    if (!IsLocationPath)
                    {
                        setLocationPath(notFound404);
                    }
                    responseLocationPathAjax();
                }
                return;
            }
            catch (Exception error)
            {
                DomainServer.RegisterServer.TcpServer.Log.Exception(error, null, LogLevel.Exception | LogLevel.AutoCSer);
            }
            serverError500(socket, identity);
        }
Пример #3
0
 internal void LoadHeader(AutoCSer.Net.HttpDomainServer.ViewServer domainServer, AutoCSer.Net.Http.SocketBase socket, bool isAsynchronous)
 {
     DomainServer   = domainServer;
     Socket         = socket;
     SocketIdentity = socket.Identity;
     IsAsynchronous = isAsynchronous;
 }
Пример #4
0
        /// <summary>
        /// 页面输出[TRY+1]
        /// </summary>
        private unsafe void responsePage()
        {
            long identity = SocketIdentity;

            AutoCSer.Net.Http.SocketBase socket = Socket;
            byte *buffer = null, encodeBuffer = null;

            try
            {
                if (ResponsePage(ref buffer, ref encodeBuffer) && SocketResponse(ref PageResponse))
                {
                    return;
                }
            }
            catch (Exception error)
            {
                DomainServer.RegisterServer.TcpServer.Log.Add(AutoCSer.Log.LogType.Error, error);
            }
            finally
            {
                if (buffer != null)
                {
                    AutoCSer.UnmanagedPool.Default.Push(buffer);
                }
                if (encodeBuffer != null)
                {
                    AutoCSer.UnmanagedPool.Default.Push(encodeBuffer);
                }
            }
            serverError500(socket, identity);
        }
Пример #5
0
        /// <summary>
        /// 输出视图错误重定向路径[TRY+1]
        /// </summary>
        private unsafe void responseLocationPath()
        {
            long identity = SocketIdentity;

            AutoCSer.Net.Http.SocketBase socket = Socket;
            if (identity == socket.Identity)
            {
                try
                {
                    if (LocationPath.LocationPath == null)
                    {
                        if (LocationPath.ErrorPath == null)
                        {
                            socket.ResponseError(identity, Net.Http.ResponseState.NotFound404);
                            return;
                        }
                        ResponseLocationPath(socket);
                    }
                    else
                    {
                        HttpResponse.SetLocation(socket.HttpHeader, LocationPath.LocationPath, Net.Http.ResponseState.Found302);
                    }
                    if (SocketResponse(ref PageResponse))
                    {
                        return;
                    }
                }
                catch (Exception error)
                {
                    DomainServer.RegisterServer.TcpServer.Log.Exception(error, null, LogLevel.Exception | LogLevel.AutoCSer);
                }
                serverError500(socket, identity);
            }
        }
Пример #6
0
        internal void ResponseLocationPath(AutoCSer.Net.Http.SocketBase socket)
        {
            if (LocationPath.ReturnPath == null)
            {
                HttpResponse.SetLocation(socket.HttpHeader, LocationPath.ErrorPath, Net.Http.ResponseState.Found302);
            }
            else
            {
                SubArray <byte> data = default(SubArray <byte>);
                socket.HttpHeader.SetResponseLocationRange(LocationPath.ErrorPath.Length + 5 + LocationPath.ReturnPath.Length, ref data);
                fixed(byte *dataFixed = data.Array)
                {
                    byte *write = dataFixed + data.Start;

                    fixed(char *pathFixed = LocationPath.ErrorPath) AutoCSer.Extension.StringExtension.WriteBytes(pathFixed, LocationPath.ErrorPath.Length, write);

                    *(write += LocationPath.ErrorPath.Length) = LocationPath.ErrorPath.IndexOf('#') >= 0 ? (byte)'&' : (byte)'#';
                    *(long *)(++write) = 'u' + ('r' << 16) + ((long)'l' << 32) + ((long)'=' << 48);

                    fixed(char *pathFixed = LocationPath.ReturnPath) AutoCSer.Extension.StringExtension.WriteBytes(pathFixed, LocationPath.ReturnPath.Length, write + sizeof(long));
                }

                HttpResponse.SetLocation(ref data, Net.Http.ResponseState.Found302);
            }
        }
Пример #7
0
            protected override void request(int viewIndex, AutoCSer.Net.Http.SocketBase socket)
            {
                switch (viewIndex)
                {
                    #region LOOP Views
                    #region IF Attribute.IsPage
                case @PageIndex:
                    #region IF IsPoolType
                    #region IF IsSetPage
                    @WebViewMethodType.FullName @PageName = @WebViewMethodType.FullName /**/.Pop();
                    if (@PageName == null)
                    {
                        setPage(@PageName = new @WebViewMethodType.FullName() /*PUSH:Attribute*/, @IsAsynchronous /*PUSH:Attribute*/, @IsAwaitMethod);
                    }
                    loadPage(socket, @PageName);
                    #endregion IF IsSetPage
                    #region NOT IsSetPage
                    loadPage(socket, /*IF:IsPoolType*/ @WebViewMethodType.FullName /**/.Pop() ?? /*IF:IsPoolType*/ new @WebViewMethodType.FullName());
                    #endregion NOT IsSetPage
                    #endregion IF IsPoolType
                    #region NOT IsPoolType
                    loadPage(socket, /*NOTE*/ (AutoCSer.WebView.View)(object) /*NOTE*/ new @WebViewMethodType.FullName() /*IF:IsSetPage*//*PUSH:Attribute*/, @IsAsynchronous /*PUSH:Attribute*/, @IsAwaitMethod /*IF:IsSetPage*/);
                    #endregion NOT IsPoolType
                    return;

                    #endregion IF Attribute.IsPage
                    #endregion LOOP Views
                }
Пример #8
0
 /// <summary>
 /// 释放资源
 /// </summary>
 public virtual void Dispose()
 {
     AutoCSer.Net.Http.SocketBase socket = Socket;
     Socket = null;
     if (socket != null)
     {
         socket.ResponseError(SocketIdentity, AutoCSer.Net.Http.ResponseState.ServerError500);
     }
 }
Пример #9
0
        protected override void request(int viewIndex, AutoCSer.Net.Http.SocketBase socket)
        {
            switch (viewIndex)
            {
            case 0: loadPage(socket, new AutoCSer.TestCase.WebPerformance.WebView(), false); return;

            case 1: loadPage(socket, new AutoCSer.TestCase.WebPerformance.WebViewAsynchronous(), true); return;
            }
        }
 protected override void call(int callIndex, AutoCSer.Net.Http.SocketBase socket)
 {
     switch (callIndex)
     {
     case 0:
         loadAsynchronous(socket, AutoCSer.TestCase.WebPerformance.Json /**/.Pop() ?? new AutoCSer.TestCase.WebPerformance.Json(), _i0);
         return;
     }
 }
Пример #11
0
        protected override void request(int viewIndex, AutoCSer.Net.Http.SocketBase socket)
        {
            switch (viewIndex)
            {
            case 0:
                loadPage(socket, AutoCSer.Web.WebView.Template /**/.Pop() ?? new AutoCSer.Web.WebView.Template());
                return;
            }
        }

        /// <summary>
        /// 网站生成配置
        /// </summary>
        internal new static readonly AutoCSer.Web.WebConfig WebConfig = new AutoCSer.Web.WebConfig();
        /// <summary>
        /// 网站生成配置
        /// </summary>
        /// <returns>网站生成配置</returns>
        protected override AutoCSer.WebView.Config getWebConfig()
        {
            return(WebConfig);
        }

        static WebServer()
        {
            CompileQueryParse(new System.Type[] { null }, new System.Type[] { null });
        }
    }
} namespace AutoCSer.Web
{
    /// <summary>
    /// AJAX函数调用
    /// </summary>
    [AutoCSer.WebView.Call]
    [AutoCSer.WebView.ClearMember(IsIgnoreCurrent = true)]
    public sealed class AjaxLoader : AutoCSer.WebView.AjaxLoader <AjaxLoader>
    {
        [AutoCSer.WebView.CallMethod(FullName = "/Ajax")]
        [System.Runtime.CompilerServices.MethodImpl(AutoCSer.MethodImpl.AggressiveInlining)]
        public void Load()
        {
            load();
        }

        protected override void loadView(AutoCSer.WebView.AjaxMethodInfo ajaxInfo)
        {
            switch (ajaxInfo.MethodIndex)
            {
            case 2:
                loadView(AutoCSer.Web.WebView.Template /**/.Pop() ?? new AutoCSer.Web.WebView.Template(), ajaxInfo);
                return;

            default: return;
            }
        }
Пример #12
0
        protected override void request(int viewIndex, AutoCSer.Net.Http.SocketBase socket)
        {
            switch (viewIndex)
            {
            case 0: loadPage(socket, new AutoCSer.TestCase.SqlTableWeb.Class(), false); return;

            case 1: loadPage(socket, new AutoCSer.TestCase.SqlTableWeb.ClassList(), false); return;

            case 2: loadPage(socket, new AutoCSer.TestCase.SqlTableWeb.Student(), false); return;
            }
        }
Пример #13
0
 protected override void request(int viewIndex, AutoCSer.Net.Http.SocketBase socket)
 {
     switch (viewIndex)
     {
         case 0:
             loadPage(socket, AutoCSer.Web.Search/**/.Pop() ?? new AutoCSer.Web.Search());
             return;
         case 1:
             loadPage(socket, AutoCSer.Web.WebView.Template/**/.Pop() ?? new AutoCSer.Web.WebView.Template());
             return;
     }
 }
Пример #14
0
 internal bool LoadHeader(AutoCSer.Net.HttpDomainServer.ViewServer domainServer, AutoCSer.Net.Http.SocketBase socket)
 {
     DomainServer   = domainServer;
     Socket         = socket;
     SocketIdentity = socket.Identity;
     if (loadHeader())
     {
         return(true);
     }
     serverError500();
     return(false);
 }
Пример #15
0
            protected override void request(int viewIndex, AutoCSer.Net.Http.SocketBase socket)
            {
                switch (viewIndex)
                {
                    #region LOOP Views
                    #region IF Attribute.IsPage
                case @PageIndex: loadPage(socket, /*IF:IsPoolType*/ @WebViewMethodType.FullName /**/.Pop() ?? /*IF:IsPoolType*/ new @WebViewMethodType.FullName() /*PUSH:Attribute*/, @IsAsynchronous /*PUSH:Attribute*/); return;

                    #endregion IF Attribute.IsPage
                    #endregion LOOP Views
                }
            }
Пример #16
0
        /// <summary>
        /// 输出结束
        /// </summary>
        /// <param name="response">HTTP响应输出</param>
        /// <returns>是否操作成功</returns>
        internal unsafe bool SocketResponse(ref AutoCSer.Net.Http.Response response)
        {
            long identity = SocketIdentity;

            AutoCSer.Net.Http.SocketBase socket = Socket;
            try
            {
                AutoCSer.Net.Http.Header     header = socket.HttpHeader;
                AutoCSer.Net.Http.HeaderFlag flag   = header.Flag;
                if ((flag & AutoCSer.Net.Http.HeaderFlag.IsVersion) != 0 && (flag & Net.Http.HeaderFlag.IsRange) == 0)
                {
                    response.TryStaticFileCacheControl();
                }
                switch (response.Type)
                {
                case Net.Http.ResponseType.ByteArray:
                case Net.Http.ResponseType.SubByteArray:
                case Net.Http.ResponseType.SubBuffer:
                    if ((flag & Net.Http.HeaderFlag.IsRange) == 0)
                    {
#if DOTNET2 || DOTNET4
                        if ((flag & Net.Http.HeaderFlag.IsGZip) != 0 && isGZip)
                        {
                            response.Compress();
                        }
#else
                        if ((flag & Net.Http.HeaderFlag.IsGZip) != 0 && isGZip)
                        {
                            response.Compress(DomainServer.WebConfigIsFastestCompressionLevel);
                        }
#endif
                        response.NoStore200(DomainServer.HtmlContentType);
                    }
                    else if (header.FormatRange(response.Body.Array.Length))
                    {
                        response.NoStore200(DomainServer.HtmlContentType);
                    }
                    else if (socket.ResponseError(identity, AutoCSer.Net.Http.ResponseState.RangeNotSatisfiable416))
                    {
                        return(true);
                    }
                    break;
                    //case Net.Http.ResponseType.File: response.SetState(AutoCSer.Net.Http.ResponseState.Ok200); break;
                }
                if (socket.Response(identity, ref response))
                {
                    return(true);
                }
            }
            finally { AutoCSer.Net.Http.Response.Push(ref response); }
            return(false);
        }
Пример #17
0
 protected override void call(int callIndex, AutoCSer.Net.Http.SocketBase socket)
 {
     switch (callIndex)
     {
         case 0:
             AutoCSer.Web.AjaxLoader loader = AutoCSer.Web.AjaxLoader/**/.Pop() ?? new AutoCSer.Web.AjaxLoader();
             ajaxLoader(loader, socket);
             loader.Load();
             return;
         case 1:
             load(socket, AutoCSer.Web.LocationIndex/**/.Pop() ?? new AutoCSer.Web.LocationIndex(), _i1);
             return;
     }
 }
Пример #18
0
        /// <summary>
        /// AJAX调用
        /// </summary>
        protected void load()
        {
            try
            {
                AutoCSer.Net.Http.SocketBase socket = Socket;
                AutoCSer.Net.Http.Header     header = Socket.HttpHeader;
                if ((header.Flag & Net.Http.HeaderFlag.IsSetAjaxCallName) != 0)
                {
#if MONO
                    AutoCSer.WebView.AjaxMethodInfo call = methods.Get(header.AjaxCallNameData);
#else
                    AutoCSer.WebView.AjaxMethodInfo call = DomainServer.WebConfigIgnoreCase ? methods.GetLower(header.AjaxCallNameData) : methods.Get(header.AjaxCallNameData);
#endif
                    if (call == null)
                    {
                        byte[] path = DomainServer.GetViewRewrite(header.AjaxCallNameData);
                        if (path.length() != 0)
                        {
                            call = methods.GetNotEmpty(path);
                        }
                    }
                    if (call != null && (!call.IsReferer || header.IsReferer != 0))// || AutoCSer.Config.Pub.Default.IsDebug
                    {
                        if (call.IsViewPage)
                        {
                            if (header.Method == Net.Http.MethodType.GET)
                            {
                                loadView(call);
                                return;
                            }
                        }
                        else if ((header.Method == Net.Http.MethodType.POST || !call.IsPost))
                        {
                            if (header.ContentLength <= call.MaxPostDataSize)
                            {
                                loadAjax(call);
                            }
                            else
                            {
                                socket.ResponseErrorIdentity(AutoCSer.Net.Http.ResponseState.ServerError500);
                            }
                            return;
                        }
                    }
                }
                socket.ResponseErrorIdentity(AutoCSer.Net.Http.ResponseState.NotFound404);
            }
            finally { PushPool(); }
        }
Пример #19
0
        protected override void call(int callIndex, AutoCSer.Net.Http.SocketBase socket)
        {
            switch (callIndex)
            {
            case 0:
                AutoCSer.TestCase.WebPerformance.AjaxLoader loader = AutoCSer.TestCase.WebPerformance.AjaxLoader /**/.Pop() ?? new AutoCSer.TestCase.WebPerformance.AjaxLoader();
                ajaxLoader(loader, socket);
                loader.Load();
                return;

            case 1:
                load(socket, AutoCSer.TestCase.WebPerformance.WebCall /**/.Pop() ?? new AutoCSer.TestCase.WebPerformance.WebCall(), _i1);
                return;

            case 2:
                loadAsynchronous(socket, AutoCSer.TestCase.WebPerformance.WebCallAsynchronous /**/.Pop() ?? new AutoCSer.TestCase.WebPerformance.WebCallAsynchronous(), _i2);
                return;
            }
        }
Пример #20
0
            protected override void call(int callIndex, AutoCSer.Net.Http.SocketBase socket)
            {
                switch (callIndex)
                {
                    #region LOOP Methods
                case @MethodIndex:
                    #region IF IsAjaxLoad
                    @WebCallAsynchronousMethodType.FullName loader = @WebCallAsynchronousMethodType.FullName /**/.Pop() ?? new @WebCallAsynchronousMethodType.FullName();
                    ajaxLoader(loader, socket);
                    loader./*PUSH:Method*/ @MethodName/*PUSH:Method*/ ();
                    #endregion IF IsAjaxLoad
                    #region NOT IsAjaxLoad
                    #region IF IsAsynchronous
                    loadAsynchronous(socket, /*IF:IsPoolType*/ @WebCallAsynchronousMethodType.FullName /**/.Pop() ?? /*IF:IsPoolType*/ new @WebCallAsynchronousMethodType.FullName(), @CallMethodInfo);
                    #endregion IF IsAsynchronous
                    #region NOT IsAsynchronous
                    load(socket, /*IF:IsPoolType*/ @WebCallMethodType.FullName /**/.Pop() ?? /*IF:IsPoolType*/ new @WebCallMethodType.FullName(), @CallMethodInfo);
                    #endregion NOT IsAsynchronous
                    #endregion NOT IsAjaxLoad
                    return;

                    #endregion LOOP Methods
                }
            }
Пример #21
0
        /// <summary>
        /// 页面输出[TRY+1]
        /// </summary>
        private unsafe void responsePage()
        {
            long identity = SocketIdentity;

            AutoCSer.Net.Http.SocketBase socket = Socket;
            AutoCSer.Memory.Pointer      buffer = default(AutoCSer.Memory.Pointer), encodeBuffer = default(AutoCSer.Memory.Pointer);
            try
            {
                if (ResponsePage(ref buffer, ref encodeBuffer) && SocketResponse(ref PageResponse))
                {
                    return;
                }
            }
            catch (Exception error)
            {
                DomainServer.RegisterServer.TcpServer.Log.Exception(error, null, LogLevel.Exception | LogLevel.AutoCSer);
            }
            finally
            {
                UnmanagedPool.Default.Push(ref buffer);
                UnmanagedPool.Default.Push(ref encodeBuffer);
            }
            serverError500(socket, identity);
        }
Пример #22
0
 private void serverError500(AutoCSer.Net.Http.SocketBase socket, long identity)
 {
     socket.ResponseError(identity, Net.Http.ResponseState.ServerError500);
 }
Пример #23
0
        protected override void call(int callIndex, AutoCSer.Net.Http.SocketBase socket)
        {
            switch (callIndex)
            {
            case 0:
                AutoCSer.TestCase.WebPerformance.AjaxLoader loader = AutoCSer.TestCase.WebPerformance.AjaxLoader /**/.Pop() ?? new AutoCSer.TestCase.WebPerformance.AjaxLoader();
                ajaxLoader(loader, socket);
                loader.Load();
                return;

            case 1:
                load(socket, AutoCSer.TestCase.WebPerformance.WebCall /**/.Pop() ?? new AutoCSer.TestCase.WebPerformance.WebCall(), _i1);
                return;

            case 2:
                loadAsynchronous(socket, AutoCSer.TestCase.WebPerformance.WebCallAsynchronous /**/.Pop() ?? new AutoCSer.TestCase.WebPerformance.WebCallAsynchronous(), _i2);
                return;
            }
        }

        protected override bool call(AutoCSer.WebView.CallBase call, ref AutoCSer.Memory.UnmanagedStream responseStream)
        {
            switch (call.CallMethodIndex)
            {
            case 1:
            {
                _p1 parameter = new _p1();
                if (call.ParseParameter(ref parameter))
                {
                    AutoCSer.TestCase.WebPerformance.WebCall value = (AutoCSer.TestCase.WebPerformance.WebCall)call;
                    value.Add(parameter.left, parameter.right);
                    repsonseCall(value, ref responseStream);
                    return(true);
                }
            }
                return(false);

            default: return(false);
            }
        }

        protected override bool call(AutoCSer.WebView.CallBase call)
        {
            switch (call.CallMethodIndex)
            {
            case 2:
            {
                _p1 parameter = new _p1();
                if (call.ParseParameter(ref parameter))
                {
                    ((AutoCSer.TestCase.WebPerformance.WebCallAsynchronous)call).Xor(parameter.left, parameter.right);
                    return(true);
                }
            }
                return(false);

            default: return(false);
            }
        }

        [System.Runtime.InteropServices.StructLayout(System.Runtime.InteropServices.LayoutKind.Auto)]
        struct _p1
        {
            public int left;
            public int right;
        }
    }
} namespace AutoCSer.TestCase.WebPerformance
{
    internal partial class WebView
    {
        protected override bool page(ref AutoCSer.WebView.Response _html_)
        {
            byte[][] htmls;
            htmls = loadHtml(@"WebView.html", 2);
            if (htmls != null)
            {
                _html_.WriteNotNull(htmls[0]);
                _html_.Write(Return);
                _html_.WriteNotNull(htmls[1]);
                return(true);
            }
            return(false);
        }

        protected override void ajax(AutoCSer.Memory.CharStream _js_)
        {
            _js_.Write(@"{Return:");
            {
                int _value1_ = Return;
                _js_.WriteWebViewJson((int)_value1_);
            }
            _js_.Write(@"}");
        }

        [System.Runtime.InteropServices.StructLayout(System.Runtime.InteropServices.LayoutKind.Auto)]
        internal struct WebViewQuery
        {
            [AutoCSer.JsonDeSerializeMember(IsDefault = true)]
            public int left;
            public int right;
        }
        /// <summary>
        /// 查询参数
        /// </summary>
        private WebViewQuery query;
        /// <summary>
        /// WEB视图加载
        /// </summary>
        /// <returns>是否成功</returns>
        protected override bool loadView()
        {
            if (base.loadView())
            {
                query = default(WebViewQuery);
                if (ParseParameter(ref query))
                {
                    return(loadView(query.left, query.right));
                }
            }
            return(false);
        }
    }
} namespace AutoCSer.TestCase.WebPerformance
{
    internal partial class WebViewAsynchronous
    {
        protected override bool page(ref AutoCSer.WebView.Response _html_)
        {
            byte[][] htmls;
            htmls = loadHtml(@"WebViewAsynchronous.html", 2);
            if (htmls != null)
            {
                _html_.WriteNotNull(htmls[0]);
                _html_.Write(Return);
                _html_.WriteNotNull(htmls[1]);
                return(true);
            }
            return(false);
        }

        protected override void ajax(AutoCSer.Memory.CharStream _js_)
        {
            _js_.Write(@"{Return:");
            {
                int _value1_ = Return;
                _js_.WriteWebViewJson((int)_value1_);
            }
            _js_.Write(@"}");
        }

        [System.Runtime.InteropServices.StructLayout(System.Runtime.InteropServices.LayoutKind.Auto)]
        internal struct WebViewQuery
        {
            [AutoCSer.JsonDeSerializeMember(IsDefault = true)]
            public int left;
            public int right;
        }
        /// <summary>
        /// 查询参数
        /// </summary>
        private WebViewQuery query;
        /// <summary>
        /// WEB视图加载
        /// </summary>
        /// <returns>是否成功</returns>
        protected override bool loadView()
        {
            if (base.loadView())
            {
                query = default(WebViewQuery);
                if (ParseParameter(ref query))
                {
                    return(loadView(query.left, query.right));
                }
            }
            return(false);
        }
    }
}
namespace AutoCSer.TestCase.WebPerformance
{
    /// <summary>
    /// WEB服务器
    /// </summary>
    public partial class WebServer : AutoCSer.Net.HttpDomainServer.ViewServer <int>
    {
        protected override KeyValue <string[], string[]> rewrites
        {
            get
            {
                int      count = 2 + 0 * 2;
                string[] names = new string[count];
                string[] views = new string[count];
                names[--count] = "/WebView";
                views[count]   = "/WebView.html";
                names[--count] = "/WebViewAsynchronous";
                views[count]   = "/WebViewAsynchronous.html";
                return(new KeyValue <string[], string[]>(names, views));
            }
        }
        protected override string[] viewRewrites
        {
            get
            {
                string[] names = new string[2];
                names[0] = "/WebView";
                names[1] = "/WebViewAsynchronous";
                return(names);
            }
        }
        protected override string[] views
        {
            get
            {
                string[] names = new string[2];
                names[0] = "/WebView.html";
                names[1] = "/WebViewAsynchronous.html";
                return(names);
            }
        }
        protected override void request(int viewIndex, AutoCSer.Net.Http.SocketBase socket)
        {
            switch (viewIndex)
            {
            case 0:
                loadPage(socket, AutoCSer.TestCase.WebPerformance.WebView /**/.Pop() ?? new AutoCSer.TestCase.WebPerformance.WebView());
                return;

            case 1:
                AutoCSer.TestCase.WebPerformance.WebViewAsynchronous _p1 = AutoCSer.TestCase.WebPerformance.WebViewAsynchronous /**/.Pop();
                if (_p1 == null)
                {
                    setPage(_p1 = new AutoCSer.TestCase.WebPerformance.WebViewAsynchronous(), true, false);
                }
                loadPage(socket, _p1);
                return;
            }
        }

        /// <summary>
        /// 网站生成配置
        /// </summary>
        internal new static readonly AutoCSer.TestCase.WebPerformance.WebViewConfig WebConfig = new AutoCSer.TestCase.WebPerformance.WebViewConfig();
        /// <summary>
        /// 网站生成配置
        /// </summary>
        /// <returns>网站生成配置</returns>
        protected override AutoCSer.WebView.Config getWebConfig()
        {
            return(WebConfig);
        }

        static WebServer()
        {
            CompileQueryParse(new System.Type[] { typeof(AutoCSer.TestCase.WebPerformance.WebView /**/.WebViewQuery), typeof(AutoCSer.TestCase.WebPerformance.WebViewAsynchronous /**/.WebViewQuery), null }, new System.Type[] { typeof(_p1), null });
        }
    }
} namespace AutoCSer.TestCase.WebPerformance
{
    /// <summary>
    /// AJAX函数调用
    /// </summary>
    [AutoCSer.WebView.Call]
    [AutoCSer.WebView.ClearMember(IsIgnoreCurrent = true)]
    public sealed class AjaxLoader : AutoCSer.WebView.AjaxLoader <AjaxLoader>
    {
        [AutoCSer.WebView.CallMethod(FullName = "/Ajax")]
        [System.Runtime.CompilerServices.MethodImpl(AutoCSer.MethodImpl.AggressiveInlining)]
        public void Load()
        {
            load();
        }

        protected override void loadView(AutoCSer.WebView.AjaxMethodInfo ajaxInfo)
        {
            switch (ajaxInfo.MethodIndex)
            {
            case 2:
                loadView(AutoCSer.TestCase.WebPerformance.WebView /**/.Pop() ?? new AutoCSer.TestCase.WebPerformance.WebView(), ajaxInfo);
                return;

            case 3:
                AutoCSer.TestCase.WebPerformance.WebViewAsynchronous _p3 = AutoCSer.TestCase.WebPerformance.WebViewAsynchronous /**/.Pop();
                if (_p3 == null)
                {
                    setPage(_p3 = new AutoCSer.TestCase.WebPerformance.WebViewAsynchronous(), true, false);
                }
                loadView(_p3, ajaxInfo);
                return;

            default: return;
            }
        }

        protected override void loadAjax(AutoCSer.WebView.AjaxMethodInfo ajaxInfo)
        {
            switch (ajaxInfo.MethodIndex)
            {
            case 0: loadAjax(AutoCSer.TestCase.WebPerformance.Ajax.Call /**/.Pop() ?? new AutoCSer.TestCase.WebPerformance.Ajax.Call(), ajaxInfo); return;

            case 1: loadAjax(AutoCSer.TestCase.WebPerformance.Ajax.Call /**/.Pop() ?? new AutoCSer.TestCase.WebPerformance.Ajax.Call(), ajaxInfo); return;

            case 5 - 1: pubError(); return;

            default: return;
            }
        }
Пример #24
0
 protected void ajaxLoader <callType>(callType ajaxLoader, AutoCSer.Net.Http.SocketBase socket)
     where callType : AutoCSer.WebView.CallAsynchronous <callType>
 {
     ajaxLoader.LoadHeader(this, socket, ajaxLoader);
 }