Page Not Found
We could not find what you were looking for.
Please contact the owner of the site that linked you to the original URL and let them know their link is broken.
We could not find what you were looking for.
Please contact the owner of the site that linked you to the original URL and let them know their link is broken.
Visual Studio 2019
",id:"\u5347\u7ea7-visual-studio-2019",level:3},{value:"\u7b2c\u4e00\u4e2a\u4f8b\u5b50",id:"\u7b2c\u4e00\u4e2a\u4f8b\u5b50",level:3},{value:"\u6253\u5f00\u5e76\u542f\u52a8\u9879\u76ee",id:"\u6253\u5f00\u5e76\u542f\u52a8\u9879\u76ee",level:3}],d={toc:c};function m(e){var t=e.components,n=(0,o.Z)(e,a);return(0,i.kt)("wrapper",(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"2021 \u5e74 06 \u6708 18 \u65e5\uff0c\u5fae\u8f6f\u53d1\u5e03\u4e86 ",(0,i.kt)("inlineCode",{parentName:"strong"},".NET 6 Preview 5")," \u7248\u672c\uff0c",(0,i.kt)("inlineCode",{parentName:"strong"},"Furion")," \u5728\u5f53\u5929\u7b2c\u4e00\u65f6\u95f4\u9002\u914d\u4e86\u8be5\u7248\u672c\uff0c\u5e76\u53d1\u5e03 ",(0,i.kt)("inlineCode",{parentName:"strong"},"Furion v3.0.0-preview.5.21301.9")," \u7248\u672c\u3002")),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://gitee.com/dotnetchina/Furion/tree/net6.0-preview5/"},"Furion .NET 6 Preview 5 \u6e90\u7801\u5730\u5740")),(0,i.kt)("h2",{id:"\u7b49\u4e0d\u53ca\u5c1d\u9c9c\u4e86"},"\u7b49\u4e0d\u53ca\u5c1d\u9c9c\u4e86"),(0,i.kt)("h3",{id:"\u5b89\u88c5-net-6-preview-5-sdk"},"\u5b89\u88c5 ",(0,i.kt)("inlineCode",{parentName:"h3"},".NET 6 Preview 5 SDK")),(0,i.kt)("p",null,"\u5c1d\u9c9c\u4e4b\u524d\uff0c\u9996\u5148\u5148\u5b89\u88c5 ",(0,i.kt)("inlineCode",{parentName:"p"},".NET 6 Preview 5 SDK"),"\uff0c\u4e0b\u8f7d\u5730\u5740\uff1a",(0,i.kt)("a",{parentName:"p",href:"https://dotnet.microsoft.com/download/dotnet/6.0"},"https://dotnet.microsoft.com/download/dotnet/6.0")),(0,i.kt)("p",null,"\u4e0b\u8f7d\u5bf9\u5e94\u7cfb\u7edf\u548c\u5904\u7406\u5668\u7248\u672c\u5373\u53ef\u3002"),(0,i.kt)("h3",{id:"\u5347\u7ea7-visual-studio-2019"},"\u5347\u7ea7 ",(0,i.kt)("inlineCode",{parentName:"h3"},"Visual Studio 2019")),(0,i.kt)("p",null,"\u76ee\u524d ",(0,i.kt)("inlineCode",{parentName:"p"},".NET 6 Preview 5")," \u652f\u6301\u4f7f\u7528 ",(0,i.kt)("inlineCode",{parentName:"p"},"Visual Studio 2019 Preview 16.11.0 Preview 2.0")," \u7248\u672c\uff0c",(0,i.kt)("strong",{parentName:"p"},"\u6ce8\u610f\u662f ",(0,i.kt)("inlineCode",{parentName:"strong"},"Preview")," \u6700\u65b0\u7248\u672c"),"\u3002\u4e0b\u8f7d\u5730\u5740\uff1a",(0,i.kt)("a",{parentName:"p",href:"https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=enterprise&ch=pre&rel=16"},"https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=enterprise&ch=pre&rel=16")),(0,i.kt)("p",null,"\u5df2\u7ecf\u5b89\u88c5\u4e86 ",(0,i.kt)("inlineCode",{parentName:"p"},"Visual Studio 2019 Preview")," \u7248\u672c\u7684\u670b\u53cb\u76f4\u63a5\u5347\u7ea7\u5230\u6700\u65b0\u7248\u5373\u53ef\u3002"),(0,i.kt)("admonition",{title:"\u7279\u522b\u8bf4\u660e",type:"note"},(0,i.kt)("p",{parentName:"admonition"},"\u5982\u679c\u4f7f\u7528 ",(0,i.kt)("inlineCode",{parentName:"p"},"Visual Studio Code")," \u5f00\u53d1\uff0c\u53ef\u5ffd\u7565\u6b64\u9009\u9879\u3002")),(0,i.kt)("h3",{id:"\u7b2c\u4e00\u4e2a\u4f8b\u5b50"},"\u7b2c\u4e00\u4e2a\u4f8b\u5b50"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"Furion v3.0.0-preview.5.21301.9")," \u76ee\u524d\u63d0\u4f9b\u4e86\u6240\u6709\u7c7b\u578b\u7684\u811a\u624b\u67b6\uff0c\u7248\u672c\u53f7\u7edf\u4e00 ",(0,i.kt)("inlineCode",{parentName:"p"},"3.0.0-preview.5.21301.9"),"\u3002"),(0,i.kt)("p",null,"\u5b89\u88c5\u811a\u624b\u67b6\uff0c\u6253\u5f00 ",(0,i.kt)("inlineCode",{parentName:"p"},"CMD/Powershell")," \u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\uff1a"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash",metastring:"showLineNumbers",showLineNumbers:!0},"dotnet new --install Furion.Template.Api::3.0.0-preview.5.21301.9\n")),(0,i.kt)("p",null,"\u521b\u5efa\u9879\u76ee"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash",metastring:"showLineNumbers",showLineNumbers:!0},"dotnet new furionapi -n FurionNET6\n")),(0,i.kt)("h3",{id:"\u6253\u5f00\u5e76\u542f\u52a8\u9879\u76ee"},"\u6253\u5f00\u5e76\u542f\u52a8\u9879\u76ee"),(0,i.kt)("p",null,"\u6253\u5f00\u6d4f\u89c8\u5668\u67e5\u770b\u6548\u679c\u5373\u53ef\u3002"))}m.isMDXComponent=!0}}]);
\ No newline at end of file
diff --git a/handbook/build/assets/js/00cf5050.46c99e8f.js b/handbook/build/assets/js/00cf5050.46c99e8f.js
new file mode 100644
index 00000000000..3cc05b28b94
--- /dev/null
+++ b/handbook/build/assets/js/00cf5050.46c99e8f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkfurion=self.webpackChunkfurion||[]).push([[8133],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;tCorsAccessorSettings
\u914d\u7f6e",id:"165-corsaccessorsettings-\u914d\u7f6e",level:2},{value:"16.6 \u524d\u7aef\u4e0d\u80fd\u8bfb\u53d6\u54cd\u5e94\u5934\u6ce8\u610f\u4e8b\u9879",id:"166-\u524d\u7aef\u4e0d\u80fd\u8bfb\u53d6\u54cd\u5e94\u5934\u6ce8\u610f\u4e8b\u9879",level:2},{value:"16.7 \u4f7f\u7528 $.ajax
\u524d\u7aef\u6ce8\u610f\u4e8b\u9879",id:"167-\u4f7f\u7528-ajax-\u524d\u7aef\u6ce8\u610f\u4e8b\u9879",level:2},{value:"16.8 \u7981\u7528\u8de8\u57df",id:"168-\u7981\u7528\u8de8\u57df",level:2},{value:"16.9 SignalR
\u8de8\u57df\u95ee\u9898",id:"169-signalr-\u8de8\u57df\u95ee\u9898",level:2},{value:"16.10 \u53cd\u9988\u4e0e\u5efa\u8bae",id:"1610-\u53cd\u9988\u4e0e\u5efa\u8bae",level:2}],c={toc:d};function m(e){var t=e.components,n=(0,i.Z)(e,l);return(0,r.kt)("wrapper",(0,a.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"161-\u4ec0\u4e48\u662f\u8de8\u57df"},"16.1 \u4ec0\u4e48\u662f\u8de8\u57df"),(0,r.kt)("p",null,"\u7b80\u5355\u6765\u8bf4\uff0c\u5f53\u4e00\u4e2a\u8bf7\u6c42 ",(0,r.kt)("inlineCode",{parentName:"p"},"url")," \u7684\u534f\u8bae\u3001\u57df\u540d\u3001\u7aef\u53e3\u4e09\u8005\u4e4b\u95f4\u4efb\u610f\u4e00\u4e2a\u4e0e\u5f53\u524d\u9875\u9762 ",(0,r.kt)("inlineCode",{parentName:"p"},"url")," \u4e0d\u540c\u5373\u4e3a\u8de8\u57df\u3002\u90a3\u4e3a\u4ec0\u4e48\u4f1a\u51fa\u73b0\u8de8\u57df\u95ee\u9898\u5462\uff1f"),(0,r.kt)("p",null,"\u51fa\u4e8e\u6d4f\u89c8\u5668\u7684\u540c\u6e90\u7b56\u7565\u9650\u5236\u3002\u540c\u6e90\u7b56\u7565\uff08Sameoriginpolicy\uff09\u662f\u4e00\u79cd\u7ea6\u5b9a\uff0c\u5b83\u662f\u6d4f\u89c8\u5668\u6700\u6838\u5fc3\u4e5f\u6700\u57fa\u672c\u7684\u5b89\u5168\u529f\u80fd\uff0c\u5982\u679c\u7f3a\u5c11\u4e86\u540c\u6e90\u7b56\u7565\uff0c\u5219\u6d4f\u89c8\u5668\u7684\u6b63\u5e38\u529f\u80fd\u53ef\u80fd\u90fd\u4f1a\u53d7\u5230\u5f71\u54cd\u3002\u53ef\u4ee5\u8bf4 ",(0,r.kt)("inlineCode",{parentName:"p"},"Web")," \u662f\u6784\u5efa\u5728\u540c\u6e90\u7b56\u7565\u57fa\u7840\u4e4b\u4e0a\u7684\uff0c\u6d4f\u89c8\u5668\u53ea\u662f\u9488\u5bf9\u540c\u6e90\u7b56\u7565\u7684\u4e00\u79cd\u5b9e\u73b0\u3002\u540c\u6e90\u7b56\u7565\u4f1a\u963b\u6b62\u4e00\u4e2a\u57df\u7684 javascript \u811a\u672c\u548c\u53e6\u5916\u4e00\u4e2a\u57df\u7684\u5185\u5bb9\u8fdb\u884c\u4ea4\u4e92\u3002\u6240\u8c13\u540c\u6e90\uff08\u5373\u6307\u5728\u540c\u4e00\u4e2a\u57df\uff09\u5c31\u662f\u4e24\u4e2a\u9875\u9762\u5177\u6709\u76f8\u540c\u7684\u534f\u8bae\uff08protocol\uff09\uff0c\u4e3b\u673a\uff08host\uff09\u548c\u7aef\u53e3\u53f7\uff08port\uff09"),(0,r.kt)("h2",{id:"162-\u6709\u8de8\u57df\u884c\u4e3a\u793a\u4f8b"},"16.2 \u6709\u8de8\u57df\u884c\u4e3a\u793a\u4f8b"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u5f53\u524d\u9875\u9762 url"),(0,r.kt)("th",{parentName:"tr",align:null},"\u88ab\u8bf7\u6c42\u9875\u9762 url"),(0,r.kt)("th",{parentName:"tr",align:null},"\u662f\u5426\u8de8\u57df"),(0,r.kt)("th",{parentName:"tr",align:null},"\u539f\u56e0"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"http://www.furion.icu/"},"http://www.furion.icu/")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"http://www.furion.icu/index.html"},"http://www.furion.icu/index.html")),(0,r.kt)("td",{parentName:"tr",align:null},"\u5426"),(0,r.kt)("td",{parentName:"tr",align:null},"\u540c\u6e90\uff08\u534f\u8bae\u3001\u57df\u540d\u3001\u7aef\u53e3\u53f7\u76f8\u540c\uff09")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"http://www.furion.icu/"},"http://www.furion.icu/")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://www.furion.icu/index.html"},"https://www.furion.icu/index.html")),(0,r.kt)("td",{parentName:"tr",align:null},"\u8de8\u57df"),(0,r.kt)("td",{parentName:"tr",align:null},"\u534f\u8bae\u4e0d\u540c\uff08http/https\uff09")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"http://www.furion.icu/"},"http://www.furion.icu/")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"http://www.baidu.com/"},"http://www.baidu.com/")),(0,r.kt)("td",{parentName:"tr",align:null},"\u8de8\u57df"),(0,r.kt)("td",{parentName:"tr",align:null},"\u4e3b\u57df\u540d\u4e0d\u540c\uff08chinadot/baidu\uff09")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"http://www.furion.icu/"},"http://www.furion.icu/")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"http://blog.furion.icu/"},"http://blog.furion.icu/")),(0,r.kt)("td",{parentName:"tr",align:null},"\u8de8\u57df"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5b50\u57df\u540d\u4e0d\u540c\uff08www/blog\uff09")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"http://www.furion.icu:8080/"},"http://www.furion.icu:8080/")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"http://www.furion.icu:7001/"},"http://www.furion.icu:7001/")),(0,r.kt)("td",{parentName:"tr",align:null},"\u8de8\u57df"),(0,r.kt)("td",{parentName:"tr",align:null},"\u7aef\u53e3\u53f7\u4e0d\u540c\uff088080/7001\uff09")))),(0,r.kt)("h2",{id:"163-\u4ec0\u4e48\u662f-cors"},"16.3 \u4ec0\u4e48\u662f CORS"),(0,r.kt)("p",null,"\u8de8\u6e90\u8d44\u6e90\u5171\u4eab (",(0,r.kt)("inlineCode",{parentName:"p"},"CORS"),") \uff1a"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u662f\u4e00\u79cd ",(0,r.kt)("inlineCode",{parentName:"li"},"W3C")," \u6807\u51c6\uff0c\u53ef\u8ba9\u670d\u52a1\u5668\u653e\u5bbd\u76f8\u540c\u7684\u6e90\u7b56\u7565\u3002"),(0,r.kt)("li",{parentName:"ul"},"\u4e0d\u662f\u4e00\u9879\u5b89\u5168\u529f\u80fd\uff0c",(0,r.kt)("inlineCode",{parentName:"li"},"CORS")," \u653e\u5bbd ",(0,r.kt)("inlineCode",{parentName:"li"},"security"),"\u3002 ",(0,r.kt)("inlineCode",{parentName:"li"},"API")," \u4e0d\u80fd\u901a\u8fc7\u5141\u8bb8 ",(0,r.kt)("inlineCode",{parentName:"li"},"CORS")," \u6765\u66f4\u5b89\u5168\u3002 \u6709\u5173\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605 ",(0,r.kt)("a",{parentName:"li",href:"https://docs.microsoft.com/zh-cn/aspnet/core/security/cors?view=aspnetcore-5.0#how-cors"},"CORS \u5de5\u4f5c\u539f\u7406"),"\u3002"),(0,r.kt)("li",{parentName:"ul"},"\u5141\u8bb8\u670d\u52a1\u5668\u660e\u786e\u5141\u8bb8\u4e00\u4e9b\u8de8\u6e90\u8bf7\u6c42\uff0c\u540c\u65f6\u62d2\u7edd\u5176\u4ed6\u8bf7\u6c42\u3002"),(0,r.kt)("li",{parentName:"ul"},"\u6bd4\u65e9\u671f\u7684\u6280\u672f\uff08\u5982 JSONP\uff09\u66f4\u5b89\u5168\u4e14\u66f4\u7075\u6d3b\u3002")),(0,r.kt)("h2",{id:"164-\u5982\u4f55\u4f7f\u7528"},"16.4 \u5982\u4f55\u4f7f\u7528"),(0,r.kt)("h3",{id:"1641-\u6dfb\u52a0-cors-\u670d\u52a1"},"16.4.1 \u6dfb\u52a0 ",(0,r.kt)("inlineCode",{parentName:"h3"},"CORS")," \u670d\u52a1"),(0,r.kt)("p",null,"\u542f\u7528\u8de8\u57df ",(0,r.kt)("inlineCode",{parentName:"p"},"Cors")," \u652f\u6301\u9996\u5148\u6dfb\u52a0 ",(0,r.kt)("inlineCode",{parentName:"p"},"CorsAccessor")," \u670d\u52a1\uff0c\u5982\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs",metastring:"showLineNumbers {13,22}",showLineNumbers:!0,"":!0,"{13,22}":!0},"using Microsoft.AspNetCore.Builder;\nusing Microsoft.AspNetCore.Hosting;\nusing Microsoft.Extensions.DependencyInjection;\nusing Microsoft.Extensions.Hosting;\n\nnamespace Furion.Web.Core\n{\n [AppStartup(700)]\n public sealed class FurWebCoreStartup : AppStartup\n {\n public void ConfigureServices(IServiceCollection services)\n {\n services.AddCorsAccessor();\n\n // ...\n }\n\n public void Configure(IApplicationBuilder app, IWebHostEnvironment env)\n {\n //...\n\n app.UseCorsAccessor();\n\n // ...\n }\n }\n}\n")),(0,r.kt)("admonition",{title:"\u7279\u522b\u6ce8\u610f",type:"caution"},(0,r.kt)("p",{parentName:"admonition"},(0,r.kt)("inlineCode",{parentName:"p"},"services.AddCorsAccessor();")," \u9700\u5728 ",(0,r.kt)("inlineCode",{parentName:"p"},"services.AddControllers()")," \u4e4b\u524d\u6ce8\u518c\u3002"),(0,r.kt)("p",{parentName:"admonition"},(0,r.kt)("inlineCode",{parentName:"p"},"app.UseCorsAccessor();")," \u9700\u5728 ",(0,r.kt)("inlineCode",{parentName:"p"},"app.UseRouting();")," \u548c ",(0,r.kt)("inlineCode",{parentName:"p"},"app.UseAuthentication();")," \u4e4b\u95f4\u6ce8\u518c\u3002")),(0,r.kt)("h3",{id:"1642-\u914d\u7f6e\u5141\u8bb8\u8de8\u57df\u57df\u540d"},"16.4.2 \u914d\u7f6e\u5141\u8bb8\u8de8\u57df\u57df\u540d"),(0,r.kt)("admonition",{title:"\u5c0f\u63d0\u9192",type:"important"},(0,r.kt)("p",{parentName:"admonition"},"\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c",(0,r.kt)("inlineCode",{parentName:"p"},"Furion")," \u5141\u8bb8\u6240\u6709\u57df\u540d\u6765\u6e90\u8bbf\u95ee\uff0c\u4e5f\u5c31\u662f\u65e0\u9700\u914d\u7f6e\u4efb\u4f55\u6765\u6e90\u57df\u540d\uff0c\u53e6\u5916\u524d\u7aef\u4e5f\u9700\u8981\u8bbe\u7f6e\u8bf7\u6c42\u53c2\u6570\uff1a",(0,r.kt)("inlineCode",{parentName:"p"},"withCredentials:false"))),(0,r.kt)("p",null,"\u5982\u679c\u9700\u8981\u6307\u5b9a\u7279\u5b9a\u57df\u540d\uff0c\u5219\u6dfb\u52a0\u4ee5\u4e0b\u914d\u7f6e\u5373\u53ef\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json",metastring:"showLineNumbers {4}",showLineNumbers:!0,"":!0,"{4}":!0},'{\n "CorsAccessorSettings": {\n "PolicyName": "\u81ea\u5b9a\u4e49\u8de8\u57df\u7b56\u7565\u540d",\n "WithOrigins": ["http://localhost:4200", "https://furion.icu"]\n }\n}\n')),(0,r.kt)("h2",{id:"165-corsaccessorsettings-\u914d\u7f6e"},"16.5 ",(0,r.kt)("inlineCode",{parentName:"h2"},"CorsAccessorSettings")," \u914d\u7f6e"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"CorsAccessorSettings"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"PolicyName"),"\uff1a\u8de8\u57df\u7b56\u7565\u540d\uff0c",(0,r.kt)("inlineCode",{parentName:"li"},"string")," \u7c7b\u578b\uff0c\u5fc5\u586b\uff0c\u9ed8\u8ba4 ",(0,r.kt)("inlineCode",{parentName:"li"},"App.Cors.Policy")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"WithOrigins"),"\uff1a\u5141\u8bb8\u8de8\u57df\u7684\u57df\u540d\u5217\u8868\uff0c",(0,r.kt)("inlineCode",{parentName:"li"},"string[]")," \u7c7b\u578b\uff0c\u9ed8\u8ba4 ",(0,r.kt)("inlineCode",{parentName:"li"},"*")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"WithHeaders"),"\uff1a\u8bf7\u6c42\u8868\u5934\uff0c\u6ca1\u6709\u914d\u7f6e\u5219\u5141\u8bb8\u6240\u6709\u8868\u5934\uff0c",(0,r.kt)("inlineCode",{parentName:"li"},"string[]")," \u7c7b\u578b"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"WithExposedHeaders"),"\uff1a\u8bbe\u7f6e\u5ba2\u6237\u7aef\u53ef\u83b7\u53d6\u7684\u54cd\u5e94\u6807\u5934\uff0c",(0,r.kt)("inlineCode",{parentName:"li"},"string[]")," \u7c7b\u578b\uff0c\u9ed8\u8ba4 ",(0,r.kt)("inlineCode",{parentName:"li"},'["access-token", "x-access-token"]')),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"WithMethods"),"\uff1a\u8bbe\u7f6e\u8de8\u57df\u5141\u8bb8\u8bf7\u6c42\u8c13\u8bcd\uff0c\u6ca1\u6709\u914d\u7f6e\u5219\u5141\u8bb8\u6240\u6709\uff0c",(0,r.kt)("inlineCode",{parentName:"li"},"string[]")," \u7c7b\u578b"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"AllowCredentials"),"\uff1a\u662f\u5426\u5141\u8bb8\u8de8\u57df\u8bf7\u6c42\u4e2d\u7684\u51ed\u636e\uff0c",(0,r.kt)("inlineCode",{parentName:"li"},"bool")," \u7c7b\u578b\uff0c\u9ed8\u8ba4\u503c ",(0,r.kt)("inlineCode",{parentName:"li"},"true")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"SetPreflightMaxAge"),"\uff1a\u8bbe\u7f6e\u9884\u68c0\u8fc7\u671f\u65f6\u95f4\uff0c",(0,r.kt)("inlineCode",{parentName:"li"},"int")," \u7c7b\u578b\uff0c\u9ed8\u8ba4\u503c ",(0,r.kt)("inlineCode",{parentName:"li"},"24\u5c0f\u65f6")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"FixedClientToken"),"\uff1a\u662f\u5426\u9ed8\u8ba4\u914d\u7f6e ",(0,r.kt)("inlineCode",{parentName:"li"},"WithExposedHeaders"),"\uff0c",(0,r.kt)("inlineCode",{parentName:"li"},"bool")," \u7c7b\u578b\uff0c\u9ed8\u8ba4 ",(0,r.kt)("inlineCode",{parentName:"li"},"true")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"SignalRSupport"),"\uff1a\u662f\u5426\u542f\u7528 ",(0,r.kt)("inlineCode",{parentName:"li"},"SignalR")," \u8de8\u57df\u652f\u6301\uff0c",(0,r.kt)("inlineCode",{parentName:"li"},"bool")," \u7c7b\u578b\uff0c\u9ed8\u8ba4 ",(0,r.kt)("inlineCode",{parentName:"li"},"false"))))),(0,r.kt)("h2",{id:"166-\u524d\u7aef\u4e0d\u80fd\u8bfb\u53d6\u54cd\u5e94\u5934\u6ce8\u610f\u4e8b\u9879"},"16.6 \u524d\u7aef\u4e0d\u80fd\u8bfb\u53d6\u54cd\u5e94\u5934\u6ce8\u610f\u4e8b\u9879"),(0,r.kt)("p",null,"\u6709\u65f6\u5019\uff0c\u6211\u4eec\u901a\u8fc7 ",(0,r.kt)("inlineCode",{parentName:"p"},"ajax")," \u6216\u8005 ",(0,r.kt)("inlineCode",{parentName:"p"},"axios")," \u7b2c\u4e09\u65b9\u5e93\u65e0\u6cd5\u8bfb\u53d6\u54cd\u5e94\u5934\u81ea\u5b9a\u4e49\u4fe1\u606f\uff0c\u8fd9\u65f6\u9700\u8981\u54cd\u5e94\u62a5\u6587\u4e2d\u516c\u5f00\u7279\u5b9a ",(0,r.kt)("inlineCode",{parentName:"p"},"Header")," \u624d\u80fd\u653e\u884c\uff0c\u5982\uff1a",(0,r.kt)("inlineCode",{parentName:"p"},"Access-Control-Expose-Headers: xxxxx"),"\uff0c\u6240\u4ee5\uff0c\u9700\u8981\u6dfb\u52a0\u4ee5\u4e0b\u914d\u7f6e\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs",metastring:'showLineNumbers title="appsettings.json"',showLineNumbers:!0,title:'"appsettings.json"'},'{\n "CorsAccessorSettings": {\n "WithExposedHeaders": ["access-token","x-access-token"]\n }\n}\n')),(0,r.kt)("p",null,"\u9700\u8981\u83b7\u53d6\u54ea\u4e2a\u5934\uff0c\u5c31\u5728 ",(0,r.kt)("inlineCode",{parentName:"p"},"WithExposedHeaders")," \u6570\u7ec4\u4e2d\u914d\u7f6e\u5373\u53ef\u3002\u5982\u679c\u4f7f\u7528 ",(0,r.kt)("inlineCode",{parentName:"p"},"ajax")," \u53ef\u4ee5\u901a\u8fc7 ",(0,r.kt)("inlineCode",{parentName:"p"},"xhr.getResponseHeader(key)")," \u6216 ",(0,r.kt)("inlineCode",{parentName:"p"},"xhr.getAllResponseHeaders()")," \u83b7\u53d6\u914d\u7f6e\u7684 ",(0,r.kt)("inlineCode",{parentName:"p"},"key"),"\u3002"),(0,r.kt)("p",null,"\u7279\u522b\u60c5\u51b5\u4e0b\u4e0d\u80fd\u8bf7\u6c42\uff0c\u53ef\u4ee5\u8003\u8651\u8bbe\u7f6e ",(0,r.kt)("inlineCode",{parentName:"p"},"withCredentials: false")," \u3002"),(0,r.kt)("h2",{id:"167-\u4f7f\u7528-ajax-\u524d\u7aef\u6ce8\u610f\u4e8b\u9879"},"16.7 \u4f7f\u7528 ",(0,r.kt)("inlineCode",{parentName:"h2"},"$.ajax")," \u524d\u7aef\u6ce8\u610f\u4e8b\u9879"),(0,r.kt)("p",null,"\u4f7f\u7528 ",(0,r.kt)("inlineCode",{parentName:"p"},"Jquery")," \u524d\u7aef\u8bf7\u6c42\u53ef\u4ee5\u53c2\u8003\u4ee5\u4e0b\u914d\u7f6e\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs",metastring:"showLineNumbers {4-7}",showLineNumbers:!0,"":!0,"{4-7}":!0},'$.ajax({\n \xa0 \xa0 \xa0 \xa0url: "https://localhost:5001/api/system/getdata",\n \xa0 \xa0 \xa0 \xa0type: "GET",\n \xa0 \xa0 \xa0 \xa0xhrFields: {\n \xa0 \xa0 \xa0 \xa0\xa0 \xa0 withCredentials: false // \u5982\u679c\u662fhttps\u8bf7\u6c42\uff0c\u53ef\u4ee5\u8bd5\u8bd5 true\n \xa0 \xa0 \xa0 \xa0},\n \xa0 \xa0 \xa0 \xa0crossDomain: true,\n \xa0 \xa0 \xa0 \xa0success: function (res) {\n \xa0 \xa0 \xa0 \xa0\xa0 \xa0 render(res);\n \xa0 \xa0 \xa0 \xa0}\n});\n')),(0,r.kt)("admonition",{title:"\u7279\u522b\u6ce8\u610f",type:"important"},(0,r.kt)("p",{parentName:"admonition"},"\u5728\u672c\u5730\u5f00\u53d1\u9636\u6bb5\uff0c\u8bf7\u6c42\u5982\u679c\u51fa\u73b0 ",(0,r.kt)("inlineCode",{parentName:"p"}," Access to XMLHttpRequest...has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header...")," \u9519\u8bef\uff0c\u8bf7\u786e\u4fdd ",(0,r.kt)("inlineCode",{parentName:"p"},"ajax")," \u7684 ",(0,r.kt)("inlineCode",{parentName:"p"},"url")," \u53c2\u6570\u662f\u6b63\u786e\u7684\uff0c\u901a\u5e38",(0,r.kt)("strong",{parentName:"p"},"\u9519\u8bef\u7684\u505a\u6cd5"),"\u662f\uff1a"),(0,r.kt)("ul",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ul"},"\u4f7f\u7528\u4e86 ",(0,r.kt)("inlineCode",{parentName:"li"},"127.0.0.1")," \u800c\u4e0d\u662f ",(0,r.kt)("inlineCode",{parentName:"li"},"localhost")," \u4e3b\u673a\u5730\u5740"),(0,r.kt)("li",{parentName:"ul"},"\u4f7f\u7528 ",(0,r.kt)("inlineCode",{parentName:"li"},"http")," \u800c\u4e0d\u662f ",(0,r.kt)("inlineCode",{parentName:"li"},"https")," \u4e3b\u673a\u534f\u8bae"),(0,r.kt)("li",{parentName:"ul"},"\u4f7f\u7528\u4e86 ",(0,r.kt)("inlineCode",{parentName:"li"},"5000")," \u800c\u4e0d\u662f ",(0,r.kt)("inlineCode",{parentName:"li"},"5001")," \u4e3b\u673a\u7aef\u53e3"))),(0,r.kt)("h2",{id:"168-\u7981\u7528\u8de8\u57df"},"16.8 \u7981\u7528\u8de8\u57df"),(0,r.kt)("p",null,"\u6709\u65f6\u5019\uff0c\u6211\u4eec\u5e0c\u671b\u67d0\u4e2a\u65b9\u6cd5\u4e0d\u68c0\u67e5\u8de8\u57df\u8bf7\u6c42\uff0c\u53ef\u4ee5\u5728 ",(0,r.kt)("inlineCode",{parentName:"p"},"Action")," \u4e2d\u8d34 ",(0,r.kt)("inlineCode",{parentName:"p"},"[DisableCors]")," \u7279\u6027\u5373\u53ef\u3002"),(0,r.kt)("h2",{id:"169-signalr-\u8de8\u57df\u95ee\u9898"},"16.9 ",(0,r.kt)("inlineCode",{parentName:"h2"},"SignalR")," \u8de8\u57df\u95ee\u9898"),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"SignalR")," \u5b9e\u73b0\u8de8\u57df\u9700\u8981\u6ee1\u8db3\u4e0b\u9762\u51e0\u4e2a\u6761\u4ef6\uff1a"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u5141\u8bb8\u7279\u5b9a\u7684\u9884\u671f\u6765\u6e90\uff0c\u5141\u8bb8\u4efb\u4f55\u6765\u6e90\u662f\u53ef\u884c\u7684\uff0c\u4f46\u4e0d\u5b89\u5168\u6216\u4e0d\u63a8\u8350\u4f7f\u7528"),(0,r.kt)("li",{parentName:"ul"},"\u5fc5\u987b\u5141\u8bb8\u4f7f\u7528 HTTP \u65b9\u6cd5 ",(0,r.kt)("inlineCode",{parentName:"li"},"GET")," \u548c ",(0,r.kt)("inlineCode",{parentName:"li"},"POST")),(0,r.kt)("li",{parentName:"ul"},"\u4e3a\u4e86\u4f7f\u57fa\u4e8e ",(0,r.kt)("inlineCode",{parentName:"li"},"cookie")," \u7684\u7c98\u6ede\u4f1a\u8bdd\u6b63\u5e38\u5de5\u4f5c\uff0c\u5fc5\u987b\u5141\u8bb8\u4f7f\u7528\u51ed\u636e\uff0c\u5373\u4f7f\u672a\u4f7f\u7528\u8eab\u4efd\u9a8c\u8bc1\uff0c\u4e5f\u5fc5\u987b\u542f\u7528\u5b83\u4eec\u3002")),(0,r.kt)("p",null,"\u5b98\u65b9\u6587\u6863\u8bf4\u660e ",(0,r.kt)("a",{parentName:"p",href:"https://docs.microsoft.com/zh-cn/aspnet/core/signalr/security?view=aspnetcore-6.0"},"https://docs.microsoft.com/zh-cn/aspnet/core/signalr/security?view=aspnetcore-6.0")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u5728 ",(0,r.kt)("inlineCode",{parentName:"strong"},"Furion 4.1.4+")," \u7248\u672c\u5df2\u4fee\u6b63 ",(0,r.kt)("inlineCode",{parentName:"strong"},"SignalR")," \u8de8\u57df\u95ee\u9898\uff0c\u53ea\u9700\u8981\u542f\u7528 ",(0,r.kt)("inlineCode",{parentName:"strong"},"SignalRSupport")," \u914d\u7f6e\u5373\u53ef"),"\uff0c\u5982\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json",metastring:"showLineNumbers {2,3}",showLineNumbers:!0,"{2,3}":!0},'{\n "CorsAccessorSettings": {\n "SignalRSupport": true\n }\n}\n')),(0,r.kt)("h2",{id:"1610-\u53cd\u9988\u4e0e\u5efa\u8bae"},"16.10 \u53cd\u9988\u4e0e\u5efa\u8bae"),(0,r.kt)("admonition",{title:"\u4e0e\u6211\u4eec\u4ea4\u6d41",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"\u7ed9 Furion \u63d0 ",(0,r.kt)("a",{parentName:"p",href:"https://gitee.com/dotnetchina/Furion/issues/new?issue"},"Issue"),"\u3002")),(0,r.kt)("hr",null),(0,r.kt)("admonition",{title:"\u4e86\u89e3\u66f4\u591a",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"\u60f3\u4e86\u89e3\u66f4\u591a ",(0,r.kt)("inlineCode",{parentName:"p"},"\u8de8\u57df\u8bf7\u6c42")," \u77e5\u8bc6\u53ef\u67e5\u9605 ",(0,r.kt)("a",{parentName:"p",href:"https://docs.microsoft.com/zh-cn/aspnet/core/security/cors?view=aspnetcore-5.0"},"ASP.NET Core - \u542f\u7528\u8de8\u57df\u8bf7\u6c42")," \u7ae0\u8282\u3002")))}m.isMDXComponent=!0}}]);
\ No newline at end of file
diff --git a/handbook/build/assets/js/00ee0bc9.c2f9d477.js b/handbook/build/assets/js/00ee0bc9.c2f9d477.js
new file mode 100644
index 00000000000..fdfad346931
--- /dev/null
+++ b/handbook/build/assets/js/00ee0bc9.c2f9d477.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkfurion=self.webpackChunkfurion||[]).push([[6792],{3905:function(e,t,n){n.d(t,{Zo:function(){return d},kt:function(){return m}});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t.csproj
\u6587\u4ef6",id:"2512-\u7f16\u8f91-csproj-\u6587\u4ef6",level:3},{value:"2.5.1.3 \u5347\u7ea7 Nuget
\u5305",id:"2513-\u5347\u7ea7-nuget-\u5305",level:3},{value:"2.5.1.4 \u5220\u9664 Startup.cs
\u6587\u4ef6",id:"2514-\u5220\u9664-startupcs-\u6587\u4ef6",level:3},{value:"2.5.1.5 \u7f16\u8f91 Web
\u542f\u52a8\u5c42 .csproj
",id:"2515-\u7f16\u8f91-web-\u542f\u52a8\u5c42-csproj",level:3},{value:"2.5.1.6 \u66ff\u6362 Program.cs
\u5185\u5bb9\u4e3a\uff1a",id:"2516-\u66ff\u6362-programcs-\u5185\u5bb9\u4e3a",level:3},{value:"2.5.1.7 \u91cd\u65b0\u7f16\u8bd1\u6574\u4e2a\u89e3\u51b3\u65b9\u6848",id:"2517-\u91cd\u65b0\u7f16\u8bd1\u6574\u4e2a\u89e3\u51b3\u65b9\u6848",level:3}],m={toc:s};function k(e){var t=e.components,n=(0,o.Z)(e,p);return(0,i.kt)("wrapper",(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"251-\u5347\u7ea7\u6ce8\u610f\u4e8b\u9879"},"2.5.1 \u5347\u7ea7\u6ce8\u610f\u4e8b\u9879"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"\u76ee\u524d\u4f7f\u7528 ",(0,i.kt)("inlineCode",{parentName:"strong"},"Furion")," \u6240\u6709\u7248\u672c\uff080.x-3.x\uff09\u7684\u7528\u6237\u5747\u53ef\u4ee5\u5feb\u901f\u65e0\u7f1d\u5347\u7ea7\u81f3 ",(0,i.kt)("inlineCode",{parentName:"strong"},"Furion v4.x")," \u7248\u672c\uff0c\u53ea\u9700\u8981\u505a\u5c11\u91cf\u66f4\u6539\u5373\u53ef\u3002")),(0,i.kt)("h3",{id:"2511-\u5b89\u88c5-net6-sdk"},"2.5.1.1 \u5b89\u88c5 ",(0,i.kt)("inlineCode",{parentName:"h3"},".NET6 SDK")),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://dotnet.microsoft.com/download/dotnet/6.0"},"https://dotnet.microsoft.com/download/dotnet/6.0")),(0,i.kt)("h3",{id:"2512-\u7f16\u8f91-csproj-\u6587\u4ef6"},"2.5.1.2 \u7f16\u8f91 ",(0,i.kt)("inlineCode",{parentName:"h3"},".csproj")," \u6587\u4ef6"),(0,i.kt)("p",null,"\u7f16\u8f91\u89e3\u51b3\u65b9\u6848\u6240\u6709\u9879\u76ee\u7684 ",(0,i.kt)("inlineCode",{parentName:"p"},".csproj")," \u6587\u4ef6\uff0c\u5e76\u66ff\u6362 ",(0,i.kt)("inlineCode",{parentName:"p"},"HttpContext
",id:"522-\u83b7\u53d6-httpcontext",level:2},{value:"5.2.2.1 \u5728 ControllerBase
\u6d3e\u751f\u7c7b\u4e2d",id:"5221-\u5728-controllerbase-\u6d3e\u751f\u7c7b\u4e2d",level:3},{value:"5.2.2.2 \u6ce8\u5165 IHttpContextAccessor
",id:"5222-\u6ce8\u5165-ihttpcontextaccessor",level:3},{value:"5.2.2.3 \u901a\u8fc7 App.HttpContext
",id:"5223-\u901a\u8fc7-apphttpcontext",level:3},{value:"5.2.3 HttpContext
\u62d3\u5c55\u65b9\u6cd5",id:"523-httpcontext-\u62d3\u5c55\u65b9\u6cd5",level:2},{value:"5.2.3.1 \u83b7\u53d6\u5f53\u524d\u8bf7\u6c42\u7684\u7279\u6027 Attribute
",id:"5231-\u83b7\u53d6\u5f53\u524d\u8bf7\u6c42\u7684\u7279\u6027-attribute",level:3},{value:"5.2.3.2 \u8bbe\u7f6e Swagger
\u81ea\u52a8\u6388\u6743",id:"5232-\u8bbe\u7f6e-swagger-\u81ea\u52a8\u6388\u6743",level:3},{value:"5.2.3.3 \u9000\u51fa Swagger
\u6388\u6743",id:"5233-\u9000\u51fa-swagger-\u6388\u6743",level:3},{value:"5.2.3.4 \u83b7\u53d6\u672c\u5730 IP \u5730\u5740",id:"5234-\u83b7\u53d6\u672c\u5730-ip-\u5730\u5740",level:3},{value:"5.2.3.5 \u83b7\u53d6\u5ba2\u6237\u7aef IP \u5730\u5740",id:"5235-\u83b7\u53d6\u5ba2\u6237\u7aef-ip-\u5730\u5740",level:3},{value:"5.2.3.6 \u8bbe\u7f6e\u54cd\u5e94\u5934 Token
",id:"5236-\u8bbe\u7f6e\u54cd\u5e94\u5934-token",level:3},{value:"5.2.4 \u8bfb\u53d6 Body
\u5185\u5bb9\uff08\u91cd\u590d\u8bfb\uff09",id:"524-\u8bfb\u53d6-body-\u5185\u5bb9\u91cd\u590d\u8bfb",level:2},{value:"5.2.5 \u53cd\u9988\u4e0e\u5efa\u8bae",id:"525-\u53cd\u9988\u4e0e\u5efa\u8bae",level:2}],u={toc:m};function c(e){var t=e.components,n=(0,o.Z)(e,i);return(0,r.kt)("wrapper",(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"521-\u5173\u4e8e-httpcontext"},"5.2.1 \u5173\u4e8e ",(0,r.kt)("inlineCode",{parentName:"h2"},"HttpContext")),(0,r.kt)("p",null,"\u5728 ",(0,r.kt)("inlineCode",{parentName:"p"},"ASP.NET")," \u7684\u65f6\u4ee3\uff0c\u6211\u4eec\u901a\u5e38\u901a\u8fc7 ",(0,r.kt)("inlineCode",{parentName:"p"},"HttpContext")," \u5168\u5c40\u9759\u6001\u7c7b\u83b7\u53d6\u8bf7\u6c42\u4e0a\u4e0b\u6587\uff0c\u4f46\u5728 ",(0,r.kt)("inlineCode",{parentName:"p"},"ASP.NET Core")," \u4e2d\uff0c",(0,r.kt)("inlineCode",{parentName:"p"},"HttpContext")," \u662f\u4e00\u4e2a\u975e\u9759\u6001\u7684\u62bd\u8c61\u7c7b\uff0c\u65e0\u6cd5\u624b\u52a8\u521b\u5efa\uff0c\u4e5f\u65e0\u6cd5\u901a\u8fc7\u9759\u6001\u83b7\u53d6\u3002"),(0,r.kt)("p",null,"\u867d\u7136\u5728 ",(0,r.kt)("inlineCode",{parentName:"p"},"ASP.NET Core")," \u4e2d\u65e0\u6cd5\u76f4\u63a5\u83b7\u53d6 ",(0,r.kt)("inlineCode",{parentName:"p"},"HttpContext")," \u5bf9\u8c61\u3002\u4f46\u662f\u5fae\u8f6f\u4e5f\u63d0\u4f9b\u4e86\u6ce8\u5165 ",(0,r.kt)("inlineCode",{parentName:"p"},"IHttpContextAccessor")," \u65b9\u5f0f\u83b7\u53d6\u3002"),(0,r.kt)("h2",{id:"522-\u83b7\u53d6-httpcontext"},"5.2.2 \u83b7\u53d6 ",(0,r.kt)("inlineCode",{parentName:"h2"},"HttpContext")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"ASP.NET Core")," \u548c ",(0,r.kt)("inlineCode",{parentName:"p"},"Furion")," \u63d0\u4f9b\u4e86\u591a\u79cd\u8bbf\u95ee ",(0,r.kt)("inlineCode",{parentName:"p"},"HttpContext")," \u7684\u65b9\u5f0f\u3002"),(0,r.kt)("h3",{id:"5221-\u5728-controllerbase-\u6d3e\u751f\u7c7b\u4e2d"},"5.2.2.1 \u5728 ",(0,r.kt)("inlineCode",{parentName:"h3"},"ControllerBase")," \u6d3e\u751f\u7c7b\u4e2d"),(0,r.kt)("p",null,"\u5728 ",(0,r.kt)("inlineCode",{parentName:"p"},"ControllerBase")," \u6d3e\u751f\u7c7b\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u76f4\u63a5\u901a\u8fc7 ",(0,r.kt)("inlineCode",{parentName:"p"},"HttpContext")," \u5c5e\u6027\u83b7\u53d6 ",(0,r.kt)("inlineCode",{parentName:"p"},"HttpContext")," \u5bf9\u8c61\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs",metastring:"showLineNumbers {5-6}",showLineNumbers:!0,"{5-6}":!0},"public class HomeController : Controller\n{\n public IActionResult Index()\n {\n // \u5728\u8fd9\u91ccHttpContext \u662f Controller/ControllerBase \u5bf9\u8c61\u7684\u5c5e\u6027\n var httpContext = HttpContext;\n\n return View();\n }\n}\n")),(0,r.kt)("h3",{id:"5222-\u6ce8\u5165-ihttpcontextaccessor"},"5.2.2.2 \u6ce8\u5165 ",(0,r.kt)("inlineCode",{parentName:"h3"},"IHttpContextAccessor")),(0,r.kt)("p",null,"\u5728 ",(0,r.kt)("inlineCode",{parentName:"p"},"Furion")," \u6846\u67b6\u4e2d\uff0c\u9ed8\u8ba4\u5df2\u7ecf\u6ce8\u518c\u4e86 ",(0,r.kt)("inlineCode",{parentName:"p"},"IHttpContextAccessor")," \u670d\u52a1\uff0c\u6240\u4ee5\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u6784\u9020\u51fd\u6570\u6ce8\u5165\u8be5\u63a5\u53e3\u83b7\u53d6\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs",metastring:"showLineNumbers {3,5}",showLineNumbers:!0,"":!0,"{3,5}":!0},"public class AppService\n{\n public AppService(IHttpContextAccessor httpContextAccessor)\n {\n var httpContext = httpContextAccessor.HttpContext;\n }\n}\n")),(0,r.kt)("h3",{id:"5223-\u901a\u8fc7-apphttpcontext"},"5.2.2.3 \u901a\u8fc7 ",(0,r.kt)("inlineCode",{parentName:"h3"},"App.HttpContext")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"App")," \u9759\u6001\u7c7b\u4e5f\u63d0\u4f9b\u4e86 ",(0,r.kt)("inlineCode",{parentName:"p"},"App.HttpContext")," \u83b7\u53d6 ",(0,r.kt)("inlineCode",{parentName:"p"},"HttpContext")," \u5bf9\u8c61\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs",metastring:"showLineNumbers",showLineNumbers:!0},"var request = App.HttpContext.Request;\n")),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("mdxAdmonitionTitle",{parentName:"admonition"},"\u975e ",(0,r.kt)("inlineCode",{parentName:"mdxAdmonitionTitle"},"Web")," \u4e2d\u8bbf\u95ee"),(0,r.kt)("p",{parentName:"admonition"},"\u5728 ",(0,r.kt)("inlineCode",{parentName:"p"},"Web")," \u5b8c\u6574\u7684\u751f\u547d\u5468\u671f\u5185\uff0c",(0,r.kt)("inlineCode",{parentName:"p"},"App.HttpContext")," \u90fd\u662f\u6709\u6548\u7684\uff0c\u4f46\u5728\u975e ",(0,r.kt)("inlineCode",{parentName:"p"},"Web")," \u4e2d\u8fd4\u56de ",(0,r.kt)("inlineCode",{parentName:"p"},"null"),"\uff0c\u907f\u514d\u5728\u591a\u7ebf\u7a0b\uff0c\u4e8b\u4ef6\u603b\u7ebf\uff0c\u5b9a\u65f6\u4efb\u52a1\u7b49\u4e2d\u4f7f\u7528\u3002")),(0,r.kt)("h2",{id:"523-httpcontext-\u62d3\u5c55\u65b9\u6cd5"},"5.2.3 ",(0,r.kt)("inlineCode",{parentName:"h2"},"HttpContext")," \u62d3\u5c55\u65b9\u6cd5"),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"Furion")," \u6846\u67b6\u57fa\u4e8e ",(0,r.kt)("inlineCode",{parentName:"p"},"HttpContext")," \u63d0\u4f9b\u4e86\u4e00\u4e9b\u5e38\u7528\u7684\u62d3\u5c55\u65b9\u6cd5\u3002"),(0,r.kt)("h3",{id:"5231-\u83b7\u53d6\u5f53\u524d\u8bf7\u6c42\u7684\u7279\u6027-attribute"},"5.2.3.1 \u83b7\u53d6\u5f53\u524d\u8bf7\u6c42\u7684\u7279\u6027 ",(0,r.kt)("inlineCode",{parentName:"h3"},"Attribute")),(0,r.kt)("p",null,"\u4e0b\u5217\u4ee3\u7801\u901a\u5e38\u7528\u4e8e\u6388\u6743 ",(0,r.kt)("inlineCode",{parentName:"p"},"Handler")," \u4e2d\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs",metastring:"showLineNumbers",showLineNumbers:!0},"var attribute = httpContext.GetMetadataISpareTimeWorker
\u65b9\u5f0f",id:"2644-isparetimeworker-\u65b9\u5f0f",level:3},{value:"26.5 Cron
\u8868\u8fbe\u5f0f\u4f7f\u7528",id:"265-cron-\u8868\u8fbe\u5f0f\u4f7f\u7528",level:2},{value:"26.5.1 \u4ec0\u4e48\u662f Cron
\u8868\u8fbe\u5f0f",id:"2651-\u4ec0\u4e48\u662f-cron-\u8868\u8fbe\u5f0f",level:3},{value:"26.5.2 \u5e38\u89c1 Cron
\u8868\u8fbe\u5f0f",id:"2652-\u5e38\u89c1-cron-\u8868\u8fbe\u5f0f",level:3},{value:"26.5.3 \u5728\u7ebf\u751f\u6210 Cron
\u8868\u8fbe\u5f0f",id:"2653-\u5728\u7ebf\u751f\u6210-cron-\u8868\u8fbe\u5f0f",level:3},{value:"26.5.4 Macro
\u6807\u8bc6\u7b26",id:"2654-macro-\u6807\u8bc6\u7b26",level:3},{value:"26.5.5 \u4f7f\u7528 Cron
\u8868\u8fbe\u5f0f",id:"2655-\u4f7f\u7528-cron-\u8868\u8fbe\u5f0f",level:3},{value:"26.5.6 \u4f7f\u7528 Macro
\u5360\u4f4d\u7b26",id:"2656-\u4f7f\u7528-macro-\u5360\u4f4d\u7b26",level:3},{value:"26.5.7 \u914d\u7f6e\u4efb\u52a1\u4fe1\u606f",id:"2657-\u914d\u7f6e\u4efb\u52a1\u4fe1\u606f",level:3},{value:"26.5.8 \u624b\u52a8\u542f\u52a8\u6267\u884c",id:"2658-\u624b\u52a8\u542f\u52a8\u6267\u884c",level:3},{value:"26.5.9 ISpareTimeWorker
\u65b9\u5f0f",id:"2659-isparetimeworker-\u65b9\u5f0f",level:3},{value:"26.6 \u81ea\u5b9a\u4e49\u4e0b\u6b21\u6267\u884c\u65f6\u95f4",id:"266-\u81ea\u5b9a\u4e49\u4e0b\u6b21\u6267\u884c\u65f6\u95f4",level:2},{value:"26.6.1 \u9ad8\u7ea7\u81ea\u5b9a\u4e49\u95f4\u9694\u65b9\u5f0f",id:"2661-\u9ad8\u7ea7\u81ea\u5b9a\u4e49\u95f4\u9694\u65b9\u5f0f",level:3},{value:"26.6.2 \u9ad8\u7ea7\u81ea\u5b9a\u4e49 Cron
\u8868\u8fbe\u5f0f",id:"2662-\u9ad8\u7ea7\u81ea\u5b9a\u4e49-cron-\u8868\u8fbe\u5f0f",level:3},{value:"26.7 ISpareTimeWorker
\u8bf4\u660e",id:"267-isparetimeworker-\u8bf4\u660e",level:2},{value:"26.7.1 [SpareTime]
\u7279\u6027",id:"2671-sparetime-\u7279\u6027",level:3},{value:"26.8 SpareTime
\u9759\u6001\u7c7b",id:"268-sparetime-\u9759\u6001\u7c7b",level:2},{value:"26.8.1 \u521d\u59cb\u5316\u4efb\u52a1",id:"2681-\u521d\u59cb\u5316\u4efb\u52a1",level:3},{value:"26.8.2 \u5b9e\u73b0\u540e\u53f0\u6267\u884c",id:"2682-\u5b9e\u73b0\u540e\u53f0\u6267\u884c",level:3},{value:"26.8.3 \u5f00\u59cb\u4e00\u4e2a\u4efb\u52a1",id:"2683-\u5f00\u59cb\u4e00\u4e2a\u4efb\u52a1",level:3},{value:"26.8.4 \u6682\u505c\u4e00\u4e2a\u4efb\u52a1",id:"2684-\u6682\u505c\u4e00\u4e2a\u4efb\u52a1",level:3},{value:"26.8.5 \u53d6\u6d88\u4e00\u4e2a\u4efb\u52a1",id:"2685-\u53d6\u6d88\u4e00\u4e2a\u4efb\u52a1",level:3},{value:"26.8.6 \u9500\u6bc1\u6240\u6709\u4efb\u52a1",id:"2686-\u9500\u6bc1\u6240\u6709\u4efb\u52a1",level:3},{value:"26.8.7 \u83b7\u53d6\u6240\u6709\u4efb\u52a1",id:"2687-\u83b7\u53d6\u6240\u6709\u4efb\u52a1",level:3},{value:"26.8.8 \u83b7\u53d6\u5355\u4e2a\u4efb\u52a1",id:"2688-\u83b7\u53d6\u5355\u4e2a\u4efb\u52a1",level:3},{value:"26.8.9 \u89e3\u6790 Cron
\u8868\u8fbe\u5f0f",id:"2689-\u89e3\u6790-cron-\u8868\u8fbe\u5f0f",level:3},{value:"26.9 \u5e76\u884c
\u548c\u4e32\u884c
\u6267\u884c\u65b9\u5f0f",id:"269-\u5e76\u884c\u548c\u4e32\u884c\u6267\u884c\u65b9\u5f0f",level:2},{value:"26.9.1 SpareTime
\u9759\u6001\u65b9\u5f0f\u6307\u5b9a",id:"2691-sparetime-\u9759\u6001\u65b9\u5f0f\u6307\u5b9a",level:3},{value:"26.9.2 ISpareTimeWorker
\u65b9\u5f0f",id:"2692-isparetimeworker-\u65b9\u5f0f",level:3},{value:"26.10 \u4efb\u52a1\u5f02\u5e38\u5904\u7406",id:"2610-\u4efb\u52a1\u5f02\u5e38\u5904\u7406",level:2},{value:"26.11 \u5982\u4f55\u5728\u4efb\u52a1\u4e2d\u89e3\u6790\u5bf9\u8c61",id:"2611-\u5982\u4f55\u5728\u4efb\u52a1\u4e2d\u89e3\u6790\u5bf9\u8c61",level:2},{value:"26.11.1 SpareTime
\u9759\u6001\u7c7b\u4e2d",id:"26111-sparetime-\u9759\u6001\u7c7b\u4e2d",level:3},{value:"26.11.2 ISpareTimeWorker
\u65b9\u5f0f",id:"26112-isparetimeworker-\u65b9\u5f0f",level:3},{value:"26.12 \u5728 BackgroundService
\u4e2d\u4f7f\u7528",id:"2612-\u5728-backgroundservice-\u4e2d\u4f7f\u7528",level:2},{value:"26.12.1 \u95f4\u9694\u6267\u884c\u65b9\u5f0f",id:"26121-\u95f4\u9694\u6267\u884c\u65b9\u5f0f",level:3},{value:"26.12.2 Cron
\u8868\u8fbe\u5f0f\u6267\u884c\u65b9\u5f0f",id:"26122-cron-\u8868\u8fbe\u5f0f\u6267\u884c\u65b9\u5f0f",level:3},{value:"26.13 \u5b9a\u65f6\u4efb\u52a1\u76d1\u542c\u5668",id:"2613-\u5b9a\u65f6\u4efb\u52a1\u76d1\u542c\u5668",level:2},{value:"26.13.1 SpareTimerExecuter
\u5c5e\u6027\u8bf4\u660e",id:"26131-sparetimerexecuter-\u5c5e\u6027\u8bf4\u660e",level:3},{value:"26.14 IIS \u90e8\u7f72\u56de\u6536\u8bbe\u7f6e",id:"2614-iis-\u90e8\u7f72\u56de\u6536\u8bbe\u7f6e",level:2},{value:"26.15 \u53cd\u9988\u4e0e\u5efa\u8bae",id:"2615-\u53cd\u9988\u4e0e\u5efa\u8bae",level:2}],N={toc:k};function s(e){var n=e.components,t=(0,r.Z)(e,l);return(0,i.kt)("wrapper",(0,a.Z)({},N,t,{components:n,mdxType:"MDXLayout"}),(0,i.kt)("admonition",{title:"4.8.0+ \u7248\u672c\u8bf4\u660e",type:"warning"},(0,i.kt)("p",{parentName:"admonition"},(0,i.kt)("strong",{parentName:"p"},"\u5728 ",(0,i.kt)("inlineCode",{parentName:"strong"},"Furion 4.8.0+")," \u7248\u672c\u91c7\u7528 ",(0,i.kt)("a",{parentName:"strong",href:"https://gitee.com/dotnetchina/Sundial"},"Sundial")," \u5b9a\u65f6\u4efb\u52a1\u66ff\u6362\u539f\u6709\u7684 ",(0,i.kt)("inlineCode",{parentName:"strong"},"TaskScheduler")),"\uff0c",(0,i.kt)("strong",{parentName:"p"},"\ud83d\ude36",(0,i.kt)("a",{parentName:"strong",href:"/docs/job"},"\u67e5\u770b\u65b0\u6587\u6863"))),(0,i.kt)("p",{parentName:"admonition"},"\u65e7\u7248\u672c\u5c06\u652f\u6301\u5230 ",(0,i.kt)("inlineCode",{parentName:"p"},"2022\u5e7412\u670831\u65e5"),"\uff0c\u4e4b\u540e\u65e7\u7248\u672c\u4ee3\u7801\u4ece\u6846\u67b6\u4e2d\u79fb\u9664\uff0c\u8bf7\u5c3d\u5feb\u4f7f\u7528\u65b0\u7248\u672c\u66ff\u4ee3\u3002")),(0,i.kt)("admonition",{title:"\u7248\u672c\u8bf4\u660e",type:"important"},(0,i.kt)("p",{parentName:"admonition"},"\u4ee5\u4e0b\u5185\u5bb9\u4ec5\u9650 ",(0,i.kt)("inlineCode",{parentName:"p"},"Furion 2.0.0 +")," \u7248\u672c\u4f7f\u7528\u3002")),(0,i.kt)("admonition",{title:"IIS \u90e8\u7f72\u8bf4\u660e",type:"tip"},(0,i.kt)("p",{parentName:"admonition"},"\u7531\u4e8e IIS \u6709\u56de\u6536\u7684\u673a\u5236\uff0c\u6240\u4ee5\u5b9a\u65f6\u4efb\u52a1\u5e94\u8be5\u91c7\u7528\u72ec\u7acb\u90e8\u7f72\uff0c\u4e0d\u7136\u7ecf\u5e38\u51fa\u73b0\u4e0d\u80fd\u89e6\u53d1\u7684\u60c5\u51b5\u3002\u67e5\u770b\u3010",(0,i.kt)("a",{parentName:"p",href:"/docs/process-service"},"Worker Service \u7ae0\u8282"),"\u3011")),(0,i.kt)("h2",{id:"261-\u5173\u4e8e\u5b9a\u65f6\u4efb\u52a1"},"26.1 \u5173\u4e8e\u5b9a\u65f6\u4efb\u52a1"),(0,i.kt)("p",null,"\u987e\u540d\u601d\u4e49\uff0c\u5b9a\u65f6\u4efb\u52a1\u5c31\u662f\u5728\u7279\u5b9a\u7684\u65f6\u95f4\u6216\u7b26\u5408\u67d0\u79cd\u65f6\u95f4\u89c4\u5f8b\u6267\u884c\u7684\u4efb\u52a1\u3002\u901a\u5e38\u5b9a\u65f6\u4efb\u52a1\u6709\u56db\u79cd\u65f6\u95f4\u8c03\u5ea6\u65b9\u5f0f\uff1a"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"\u7f13\u9694\u65f6\u95f4")," \u65b9\u5f0f\uff1a\u5ef6\u8fdf\u591a\u5c11\u65f6\u95f4\u540e\u8c03\u914d\u4efb\u52a1\uff0c\u8fd9\u79cd\u65b9\u5f0f\u4efb\u52a1\u53ea\u4f1a\u88ab\u8c03\u7528\u4e00\u6b21\u3002"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"\u95f4\u9694\u65f6\u95f4")," \u65b9\u5f0f\uff1a\u6bcf\u9694\u4e00\u6bb5\u56fa\u5b9a\u65f6\u95f4\u8c03\u914d\u4efb\u52a1\uff0c\u65e0\u95f4\u65ad\u8c03\u7528\u4efb\u52a1\u3002"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Cron \u8868\u8fbe\u5f0f")," \u65b9\u6cd5\uff1a\u901a\u8fc7 ",(0,i.kt)("inlineCode",{parentName:"li"},"Cron")," \u8868\u8fbe\u5f0f\u8ba1\u7b97\u4e0b\u4e00\u6b21\u6267\u884c\u65f6\u95f4\u8fdb\u884c\u8c03\u914d\u4efb\u52a1\uff0c\u53ef\u4ee5\u914d\u7f6e\u7279\u5b9a\u65f6\u95f4\u8303\u56f4\u5185\u6267\u884c\uff0c\u4e5f\u53ef\u4ee5\u65e0\u95f4\u65ad\u6267\u884c\u3002"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"\u81ea\u5b9a\u4e49\u4e0b\u6b21\u6267\u884c\u65f6\u95f4"),"\uff1a\u53ef\u4ee5\u901a\u8fc7\u5404\u79cd\u903b\u8f91\u8fd0\u7b97\u8fd4\u56de\u4e0b\u4e00\u6b21\u6267\u884c\u65f6\u95f4")),(0,i.kt)("h2",{id:"262-\u5982\u4f55\u5b9e\u73b0"},"26.2 \u5982\u4f55\u5b9e\u73b0"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"Furion")," \u6846\u67b6\u63d0\u4f9b\u4e86\u4e24\u79cd\u65b9\u5f0f\u5b9e\u73b0\u5b9a\u65f6\u4efb\u52a1\uff1a"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"SpareTime")," \u9759\u6001\u7c7b\uff1a",(0,i.kt)("inlineCode",{parentName:"li"},"SpareTime")," \u9759\u6001\u7c7b\u63d0\u4f9b ",(0,i.kt)("inlineCode",{parentName:"li"},"SpareTime.Do([options])")," \u65b9\u5f0f\u8c03\u7528\u3002"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ISpareTimeWorker")," \u4f9d\u8d56\u65b9\u5f0f\uff1a\u901a\u8fc7\u81ea\u5b9a\u4e49\u7c7b\u5b9e\u73b0 ",(0,i.kt)("inlineCode",{parentName:"li"},"ISpareTimeWorker")," \u63a5\u53e3\u5e76\u7f16\u5199\u4e00\u5b9a\u89c4\u5219\u7684\u65b9\u6cd5\u5373\u53ef\u3002",(0,i.kt)("strong",{parentName:"li"},"\u9700\u8981\u5728 ",(0,i.kt)("inlineCode",{parentName:"strong"},"Startup.cs")," \u4e2d\u6ce8\u518c ",(0,i.kt)("inlineCode",{parentName:"strong"},"services.AddTaskScheduler()")))),(0,i.kt)("h2",{id:"263-\u7f13\u9694\u65b9\u5f0f\u4f7f\u7528"},"26.3 \u7f13\u9694\u65b9\u5f0f\u4f7f\u7528"),(0,i.kt)("h3",{id:"2631-\u7279\u5b9a\u65f6\u95f4\u540e\u6267\u884c"},"26.3.1 \u7279\u5b9a\u65f6\u95f4\u540e\u6267\u884c"),(0,i.kt)("p",null,"\u8fd9\u91cc\u6f14\u793a ",(0,i.kt)("inlineCode",{parentName:"p"},"3s")," \u540e\u6267\u884c"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-cs",metastring:"showLineNumbers {5}",showLineNumbers:!0,"":!0,"{5}":!0},'Console.WriteLine("\u5f53\u524d\u65f6\u95f4\uff1a" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));\n\n// timer \u662f\u5b9a\u65f6\u5668\u7684\u5bf9\u8c61\uff0c\u5305\u542b\u5b9a\u65f6\u5668\u76f8\u5173\u4fe1\u606f\n// count \u8868\u793a\u6267\u884c\u6b21\u6570\uff0c\u8fd9\u91cc\u53ea\u6709\u4e00\u6b21\nSpareTime.DoOnce(3000, (timer, count) => {\n Console.WriteLine("\u73b0\u5728\u65f6\u95f4\uff1a" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));\n});\n')),(0,i.kt)("h3",{id:"2632-\u914d\u7f6e\u4efb\u52a1\u4fe1\u606f"},"26.3.2 \u914d\u7f6e\u4efb\u52a1\u4fe1\u606f"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-cs",metastring:"showLineNumbers {3}",showLineNumbers:!0,"":!0,"{3}":!0},'SpareTime.DoOnce(3000, (timer, count) => {\n Console.WriteLine("\u73b0\u5728\u65f6\u95f4\uff1a" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));\n}, "jobName", "\u63cf\u8ff0\u4e00\u4e0b\u8fd9\u4e2a\u4efb\u52a1\u662f\u5e72\u4ec0\u4e48\u7684");\n')),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"jobName")," \u6807\u8bc6\u4efb\u52a1\u7684\u552f\u4e00\u6807\u8bc6\uff0c\u901a\u8fc7\u8fd9\u4e2a\u6807\u8bc6\u53ef\u4ee5\u542f\u52a8\u3001\u6682\u505c\u3001\u9500\u6bc1\u4efb\u52a1\u3002"),(0,i.kt)("h3",{id:"2633-\u624b\u52a8\u542f\u52a8\u6267\u884c"},"26.3.3 \u624b\u52a8\u542f\u52a8\u6267\u884c"),(0,i.kt)("p",null,"\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u4efb\u52a1\u521d\u59cb\u5316\u540e\u5c31\u7acb\u5373\u542f\u52a8\uff0c\u7b49\u5f85\u7b26\u5408\u7684\u65f6\u95f4\u5c31\u6267\u884c\uff0c\u6709\u4e9b\u65f6\u5019\u6211\u4eec\u4ec5\u4ec5\u60f3\u521d\u59cb\u5316\u65f6\u95f4\uff0c\u4e0d\u5e0c\u671b\u7acb\u5373\u6267\u884c\uff0c\u53ea\u9700\u8981\u914d\u7f6e ",(0,i.kt)("inlineCode",{parentName:"p"},"startNow")," \u5373\u53ef\uff1a"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-cs",metastring:"showLineNumbers {3,6}",showLineNumbers:!0,"":!0,"{3,6}":!0},'SpareTime.DoOnce(3000, (timer, count) => {\n Console.WriteLine("\u73b0\u5728\u65f6\u95f4\uff1a" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));\n},"jobName", startNow: false);\n\n// \u624b\u52a8\u542f\u52a8\u6267\u884c\nSpareTime.Start("jobName");\n')),(0,i.kt)("h3",{id:"2634-\u6a21\u62df\u540e\u53f0\u6267\u884c"},"26.3.4 \u6a21\u62df\u540e\u53f0\u6267\u884c"),(0,i.kt)("p",null,"\u6709\u4e9b\u65f6\u5019\uff0c\u6211\u4eec\u53ea\u9700\u8981\u5f00\u542f\u65b0\u7ebf\u7a0b\u53bb\u6267\u884c\u4e00\u4e2a\u4efb\u52a1\uff0c\u6bd4\u5982\u53d1\u77ed\u4fe1\uff0c\u53d1\u90ae\u4ef6\uff0c\u65e0\u9700\u914d\u7f6e\u3002"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-cs",metastring:"showLineNumbers {2}",showLineNumbers:!0,"":!0,"{2}":!0},"// \u6b64\u65b9\u6cd5\u65e0\u9700\u4e3b\u7ebf\u7a0b\u7b49\u5f85\u5373\u53ef\u8fd4\u56de\uff0c\u53ef\u5927\u5927\u63d0\u9ad8\u6027\u80fd\nSpareTime.DoIt(() => {\n // \u8fd9\u91cc\u53d1\u9001\u77ed\u4fe1\uff0c\u53d1\u9001\u90ae\u4ef6\u6216\u8bb0\u5f55\u8bbf\u95ee\u8bb0\u5f55\n});\n")),(0,i.kt)("p",null,"\u8fd8\u53ef\u4ee5\u6307\u5b9a\u591a\u957f\u65f6\u95f4\u540e\u89e6\u53d1\uff0c\u5efa\u8bae ",(0,i.kt)("inlineCode",{parentName:"p"},"10-1000")," \u6beb\u79d2\u4e4b\u95f4\uff1a"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-cs",metastring:"showLineNumbers {3}",showLineNumbers:!0,"":!0,"{3}":!0},"SpareTime.DoIt(() => {\n // \u53d1\u9001\u77ed\u4fe1\n}, 100);\n")),(0,i.kt)("h3",{id:"2635-isparetimeworker-\u65b9\u5f0f"},"26.3.5 ",(0,i.kt)("inlineCode",{parentName:"h3"},"ISpareTimeWorker")," \u65b9\u5f0f"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-cs",metastring:"showLineNumbers {1,8}",showLineNumbers:!0,"":!0,"{1,8}":!0},'public class JobWorker : ISpareTimeWorker\n{\n /// [SuppressChangedListener]
\u8df3\u8fc7\u76d1\u542c",id:"9255-suppresschangedlistener-\u8df3\u8fc7\u76d1\u542c",level:2},{value:"9.25.6 \u53cd\u9988\u4e0e\u5efa\u8bae",id:"9256-\u53cd\u9988\u4e0e\u5efa\u8bae",level:2}],c={toc:u};function d(e){var t=e.components,n=(0,a.Z)(e,o);return(0,i.kt)("wrapper",(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"9251-\u5b9e\u4f53\u6570\u636e\u76d1\u542c\u5668"},"9.25.1 \u5b9e\u4f53\u6570\u636e\u76d1\u542c\u5668"),(0,i.kt)("p",null,"\u5728\u6700\u65b0\u7684 ",(0,i.kt)("inlineCode",{parentName:"p"},"Furion")," \u7684 ",(0,i.kt)("inlineCode",{parentName:"p"},"1.1.6+")," \u7248\u672c\u4e2d\uff0c\u65b0\u589e\u4e86 ",(0,i.kt)("inlineCode",{parentName:"p"},"IEntityChangedListener")," \u5b9e\u4f53\u6570\u636e\u76d1\u542c\u63a5\u53e3\uff0c\u53ef\u4ee5\u76d1\u542c ",(0,i.kt)("inlineCode",{parentName:"p"},"EFCore")," \u4efb\u4f55\u5b9e\u4f53\u8868 ",(0,i.kt)("inlineCode",{parentName:"p"},"\u589e\u5220\u6539")," \u64cd\u4f5c\u3002"),(0,i.kt)("h2",{id:"9252-\u6709\u4f55\u4f5c\u7528"},"9.25.2 \u6709\u4f55\u4f5c\u7528"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"\u7c7b\u4f3c\u6570\u636e\u5e93 ",(0,i.kt)("inlineCode",{parentName:"li"},"\u89e6\u53d1\u5668")," \u529f\u80fd\uff0c\u53ef\u5b9e\u73b0 ",(0,i.kt)("inlineCode",{parentName:"li"},"\u589e\u5220\u6539")," \u76d1\u542c"),(0,i.kt)("li",{parentName:"ul"},"\u53ef\u4ee5\u5b9e\u73b0\u7279\u6b8a\u64cd\u4f5c\uff0c\u6bd4\u5982\u5237\u65b0\u7f13\u5b58\uff0c\u8bb0\u5f55\u65e5\u5fd7\u7b49")),(0,i.kt)("h2",{id:"9253-\u5982\u4f55\u4f7f\u7528"},"9.25.3 \u5982\u4f55\u4f7f\u7528"),(0,i.kt)("p",null,"\u5728 ",(0,i.kt)("inlineCode",{parentName:"p"},"Furion")," \u6846\u67b6\u4e2d\uff0c\u9ed8\u8ba4\u4e0d\u542f\u7528\u5b9e\u4f53\u6570\u636e\u76d1\u542c\u5668\uff0c\u5982\u60f3\u542f\u7528\uff0c\u53ea\u9700\u8981\u5728 ",(0,i.kt)("inlineCode",{parentName:"p"},"\u6570\u636e\u5e93\u4e0a\u4e0b\u6587")," \u6784\u9020\u51fd\u6570\u4e2d\u542f\u7528\u5373\u53ef\uff1a"),(0,i.kt)("h3",{id:"92531-\u542f\u7528\u6570\u636e\u76d1\u542c"},"9.25.3.1 \u542f\u7528\u6570\u636e\u76d1\u542c"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-cs",metastring:"showLineNumbers {11}",showLineNumbers:!0,"":!0,"{11}":!0},'using Furion.DatabaseAccessor;\nusing Microsoft.EntityFrameworkCore;\n\nnamespace Furion.EntityFramework.Core\n{\n [AppDbContext("Sqlite3ConnectionString")]\n public class DefaultDbContext : AppDbContextKafka
\u81ea\u5b9a\u4e49\u6307\u5357",id:"2242-kafka-\u81ea\u5b9a\u4e49\u6307\u5357",level:3},{value:"22.5 \u81ea\u5b9a\u4e49\u4e8b\u4ef6\u53d1\u5e03\u8005",id:"225-\u81ea\u5b9a\u4e49\u4e8b\u4ef6\u53d1\u5e03\u8005",level:2},{value:"22.6 \u6dfb\u52a0\u4e8b\u4ef6\u6267\u884c\u76d1\u89c6\u5668",id:"226-\u6dfb\u52a0\u4e8b\u4ef6\u6267\u884c\u76d1\u89c6\u5668",level:2},{value:"22.7 \u6dfb\u52a0\u4e8b\u4ef6\u6267\u884c\u5668",id:"227-\u6dfb\u52a0\u4e8b\u4ef6\u6267\u884c\u5668",level:2},{value:"22.8 \u4f7f\u7528\u6709\u4f5c\u7528\u57df\u7684\u670d\u52a1",id:"228-\u4f7f\u7528\u6709\u4f5c\u7528\u57df\u7684\u670d\u52a1",level:2},{value:"22.9 \u8ba2\u9605\u6267\u884c\u4efb\u52a1\u610f\u5916\u5f02\u5e38",id:"229-\u8ba2\u9605\u6267\u884c\u4efb\u52a1\u610f\u5916\u5f02\u5e38",level:2},{value:"22.10 \u4e8b\u4ef6\u603b\u7ebf\u5de5\u5382",id:"2210-\u4e8b\u4ef6\u603b\u7ebf\u5de5\u5382",level:2},{value:"22.11 MessageCenter
\u9759\u6001\u7c7b",id:"2211-messagecenter-\u9759\u6001\u7c7b",level:2},{value:"22.12 \u914d\u7f6e\u91cd\u8bd5\u5931\u8d25\u56de\u8c03",id:"2212-\u914d\u7f6e\u91cd\u8bd5\u5931\u8d25\u56de\u8c03",level:2},{value:"22.13 EventBusOptionsBuilder
\u914d\u7f6e",id:"2213-eventbusoptionsbuilder-\u914d\u7f6e",level:2},{value:"22.14 \u5173\u4e8e\u9ad8\u9891\u6d88\u606f\u5904\u7406\u65b9\u5f0f",id:"2214-\u5173\u4e8e\u9ad8\u9891\u6d88\u606f\u5904\u7406\u65b9\u5f0f",level:2},{value:"22.15 IIS \u90e8\u7f72\u56de\u6536\u8bbe\u7f6e",id:"2215-iis-\u90e8\u7f72\u56de\u6536\u8bbe\u7f6e",level:2},{value:"22.16 \u4f7f\u7528\u7b2c\u4e09\u65b9\u4e8b\u4ef6\u603b\u7ebf CAP
\u793a\u4f8b",id:"2216-\u4f7f\u7528\u7b2c\u4e09\u65b9\u4e8b\u4ef6\u603b\u7ebf-cap-\u793a\u4f8b",level:2},{value:"22.17 \u53cd\u9988\u4e0e\u5efa\u8bae",id:"2217-\u53cd\u9988\u4e0e\u5efa\u8bae",level:2}],d={toc:m};function v(e){var n=e.components,t=(0,a.Z)(e,s);return(0,o.kt)("wrapper",(0,r.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{title:"v2.20 \u4ee5\u4e0b\u7248\u672c\u8bf4\u660e",type:"warning"},(0,o.kt)("p",{parentName:"admonition"},(0,o.kt)("strong",{parentName:"p"},"\u5728 ",(0,o.kt)("inlineCode",{parentName:"strong"},"Furion v2.20+")," \u7248\u672c\u91c7\u7528 ",(0,o.kt)("a",{parentName:"strong",href:"https://gitee.com/dotnetchina/Jaina"},"Jaina")," \u4e8b\u4ef6\u603b\u7ebf\u66ff\u6362\u539f\u6709\u7684 ",(0,o.kt)("inlineCode",{parentName:"strong"},"EventBus")),"\uff0c",(0,o.kt)("a",{parentName:"p",href:"/docs/event-bus-old"},"\u67e5\u770b\u65e7\u6587\u6863"))),(0,o.kt)("admonition",{title:"\u7248\u672c\u8bf4\u660e",type:"important"},(0,o.kt)("p",{parentName:"admonition"},"\u4ee5\u4e0b\u5185\u5bb9\u4ec5\u9650 ",(0,o.kt)("inlineCode",{parentName:"p"},"Furion 2.20.0 +")," \u7248\u672c\u4f7f\u7528\u3002")),(0,o.kt)("h2",{id:"221-\u5173\u4e8e\u4e8b\u4ef6\u603b\u7ebf"},"22.1 \u5173\u4e8e\u4e8b\u4ef6\u603b\u7ebf"),(0,o.kt)("p",null,"\u4e8b\u4ef6\u603b\u7ebf\u662f\u5bf9\u53d1\u5e03-\u8ba2\u9605\u6a21\u5f0f\u7684\u4e00\u79cd\u5b9e\u73b0\u3002\u5b83\u662f\u4e00\u79cd\u96c6\u4e2d\u5f0f\u4e8b\u4ef6\u5904\u7406\u673a\u5236\uff0c\u5141\u8bb8\u4e0d\u540c\u7684\u7ec4\u4ef6\u4e4b\u95f4\u8fdb\u884c\u5f7c\u6b64\u901a\u4fe1\u800c\u53c8\u4e0d\u9700\u8981\u76f8\u4e92\u4f9d\u8d56\uff0c\u8fbe\u5230\u4e00\u79cd\u89e3\u8026\u7684\u76ee\u7684\u3002"),(0,o.kt)("img",{src:(0,i.Z)("img/ebs.png")}),(0,o.kt)("h2",{id:"222-\u5feb\u901f\u5165\u95e8"},"22.2 \u5feb\u901f\u5165\u95e8"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"\u5b9a\u4e49\u4e8b\u4ef6\u8ba2\u9605\u8005 ",(0,o.kt)("inlineCode",{parentName:"li"},"ToDoEventSubscriber"),"\uff1a")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-cs",metastring:"showLineNumbers {2,10-11,19-21,28-30,32,36-38,44-48,54-56}",showLineNumbers:!0,"":!0,"{2,10-11,19-21,28-30,32,36-38,44-48,54-56}":!0},'// \u5b9e\u73b0 IEventSubscriber \u63a5\u53e3\npublic class ToDoEventSubscriber : IEventSubscriber\n{\n private readonly ILoggerRedis
\u7f13\u5b58",id:"1445-\u5206\u5e03\u5f0f-redis-\u7f13\u5b58",level:3},{value:"14.4.6 \u5206\u5e03\u5f0f NCache
\u7f13\u5b58",id:"1446-\u5206\u5e03\u5f0f-ncache-\u7f13\u5b58",level:3},{value:"14.5 \u5206\u5e03\u5f0f\u7f13\u5b58\u4f7f\u7528",id:"145-\u5206\u5e03\u5f0f\u7f13\u5b58\u4f7f\u7528",level:2},{value:"14.6 \u5206\u5e03\u5f0f\u7f13\u5b58\u5efa\u8bae",id:"146-\u5206\u5e03\u5f0f\u7f13\u5b58\u5efa\u8bae",level:2},{value:"14.7 \u53cd\u9988\u4e0e\u5efa\u8bae",id:"147-\u53cd\u9988\u4e0e\u5efa\u8bae",level:2}],m={toc:d};function u(e){var n=e.components,t=(0,i.Z)(e,o);return(0,r.kt)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"141-\u4ec0\u4e48\u662f\u7f13\u5b58"},"14.1 \u4ec0\u4e48\u662f\u7f13\u5b58"),(0,r.kt)("p",null,"\u7f13\u5b58\u53ef\u4ee5\u51cf\u5c11\u751f\u6210\u5185\u5bb9\u6240\u9700\u7684\u5de5\u4f5c\uff0c\u4ece\u800c\u663e\u8457\u63d0\u9ad8\u5e94\u7528\u7a0b\u5e8f\u7684\u6027\u80fd\u548c\u53ef\u4f38\u7f29\u6027\u3002 ",(0,r.kt)("strong",{parentName:"p"},"\u7f13\u5b58\u9002\u7528\u4e8e\u4e0d\u7ecf\u5e38\u66f4\u6539\u7684\u6570\u636e\uff0c\u56e0\u4e3a\u751f\u6210\u6210\u672c\u5f88\u9ad8"),"\u3002 \u901a\u8fc7\u7f13\u5b58\uff0c\u53ef\u6bd4\u4ece\u6570\u636e\u6e90\u8fd4\u56de\u6570\u636e\u7684\u526f\u672c\u901f\u5ea6\u5feb\u5f97\u591a\u3002 \u5e94\u8be5\u5bf9\u5e94\u7528\u8fdb\u884c\u7f16\u5199\u548c\u6d4b\u8bd5\uff0c\u4f7f\u5176\u4e0d\u8981\u6c38\u8fdc\u4f9d\u8d56\u4e8e\u7f13\u5b58\u7684\u6570\u636e\u3002"),(0,r.kt)("h2",{id:"142-\u7f13\u5b58\u7c7b\u578b"},"14.2 \u7f13\u5b58\u7c7b\u578b"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u5185\u5b58\u7f13\u5b58\uff1a\u987e\u540d\u601d\u4e49\uff0c\u5c31\u662f\u7f13\u5b58\u5728\u5e94\u7528\u90e8\u7f72\u6240\u5728\u670d\u52a1\u5668\u7684\u5185\u5b58\u4e2d"),(0,r.kt)("li",{parentName:"ul"},"\u5206\u5e03\u5f0f\u7f13\u5b58\uff1a\u5206\u5e03\u5f0f\u7f13\u5b58\u662f\u7531\u591a\u4e2a\u5e94\u7528\u670d\u52a1\u5668\u5171\u4eab\u7684\u7f13\u5b58"),(0,r.kt)("li",{parentName:"ul"},"\u54cd\u5e94\u7f13\u5b58\uff1a\u7f13\u5b58\u670d\u52a1\u5668\u7aef ",(0,r.kt)("inlineCode",{parentName:"li"},"Not Modified")," \u7684\u6570\u636e")),(0,r.kt)("h2",{id:"143-\u5185\u5b58\u7f13\u5b58\u4f7f\u7528"},"14.3 \u5185\u5b58\u7f13\u5b58\u4f7f\u7528"),(0,r.kt)("p",null,"\u5185\u5b58\u7f13\u5b58\u662f\u6700\u5e38\u7528\u7684\u7f13\u5b58\u65b9\u5f0f\uff0c\u5177\u6709\u5b58\u53d6\u5feb\uff0c\u6548\u7387\u9ad8\u7279\u70b9\u3002"),(0,r.kt)("p",null,"\u5185\u5b58\u7f13\u5b58\u901a\u8fc7\u6ce8\u5165 ",(0,r.kt)("inlineCode",{parentName:"p"},"IMemoryCache")," \u65b9\u5f0f\u6ce8\u5165\u5373\u53ef\u3002"),(0,r.kt)("admonition",{title:"\u5907\u6ce8",type:"important"},(0,r.kt)("p",{parentName:"admonition"},"\u5728 ",(0,r.kt)("inlineCode",{parentName:"p"},"Furion")," \u6846\u67b6\u4e2d\uff0c\u5185\u5b58\u7f13\u5b58\u670d\u52a1\u5df2\u7ecf\u9ed8\u8ba4\u6ce8\u518c\uff0c\u65e0\u9700\u624b\u52a8\u6ce8\u518c\u3002")),(0,r.kt)("h3",{id:"1431-\u57fa\u672c\u4f7f\u7528"},"14.3.1 \u57fa\u672c\u4f7f\u7528"),(0,r.kt)("p",null,"\u5982\uff0c\u7f13\u5b58\u5f53\u524d\u65f6\u95f4\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs",metastring:"showLineNumbers {13,21-24}",showLineNumbers:!0,"":!0,"{13,21-24}":!0},'using Furion.DynamicApiController;\nusing Microsoft.Extensions.Caching.Memory;\nusing System;\n\nnamespace Furion.Application\n{\n public class CacheServices : IDynamicApiController\n {\n private const string _timeCacheKey = "cache_time";\n\n private readonly IMemoryCache _memoryCache;\n\n public CacheServices(IMemoryCache memoryCache)\n {\n _memoryCache = memoryCache;\n }\n\n [ApiDescriptionSettings(KeepName = true)]\n public DateTimeOffset GetOrCreate()\n {\n return _memoryCache.GetOrCreate(_timeCacheKey, entry =>\n {\n return DateTimeOffset.UtcNow;\n });\n }\n }\n}\n')),(0,r.kt)("h3",{id:"1432-\u8bbe\u7f6e\u7f13\u5b58\u9009\u9879"},"14.3.2 \u8bbe\u7f6e\u7f13\u5b58\u9009\u9879"),(0,r.kt)("p",null,"\u5185\u5b58\u7f13\u5b58\u652f\u6301\u8bbe\u7f6e\u7f13\u5b58\u65f6\u95f4\u3001\u7f13\u5b58\u5927\u5c0f\u3001\u53ca\u7edd\u5bf9\u7f13\u5b58\u8fc7\u671f\u65f6\u95f4\u7b49"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs",metastring:"showLineNumbers",showLineNumbers:!0},"_memoryCache.GetOrCreate(_timeCacheKey, entry =>\n{\n entry.SlidingExpiration = TimeSpan.FromSeconds(3); // \u6ed1\u52a8\u7f13\u5b58\u65f6\u95f4\n return DateTimeOffset.UtcNow;\n});\n\nawait _memoryCache.GetOrCreateAsync(_timeCacheKey, async entry =>\n{\n // \u8fd9\u91cc\u53ef\u4ee5\u4f7f\u7528\u5f02\u6b65~~\n});\n")),(0,r.kt)("admonition",{title:"\u5173\u4e8e\u7f13\u5b58\u65f6\u95f4",type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"\u5177\u6709\u53ef\u8c03\u8fc7\u671f\u7684\u7f13\u5b58\u9879\u96c6\u5b58\u5728\u8fc7\u65f6\u7684\u98ce\u9669\u3002 \u5982\u679c\u8bbf\u95ee\u7684\u65f6\u95f4\u6bd4\u6ed1\u52a8\u8fc7\u671f\u65f6\u95f4\u95f4\u9694\u66f4\u9891\u7e41\uff0c\u5219\u8be5\u9879\u5c06\u6c38\u4e0d\u8fc7\u671f\u3002"),(0,r.kt)("p",{parentName:"admonition"},"\u5c06\u5f39\u6027\u8fc7\u671f\u4e0e\u7edd\u5bf9\u8fc7\u671f\u7ec4\u5408\u5728\u4e00\u8d77\uff0c\u4ee5\u4fdd\u8bc1\u9879\u76ee\u5728\u5176\u7edd\u5bf9\u8fc7\u671f\u65f6\u95f4\u901a\u8fc7\u540e\u8fc7\u671f\u3002 \u7edd\u5bf9\u8fc7\u671f\u4f1a\u5c06\u9879\u7684\u4e0a\u9650\u8bbe\u7f6e\u4e3a\u53ef\u7f13\u5b58\u9879\u7684\u65f6\u95f4\uff0c\u540c\u65f6\u4ecd\u5141\u8bb8\u9879\u5728\u53ef\u8c03\u6574\u8fc7\u671f\u65f6\u95f4\u95f4\u9694\u5185\u672a\u8bf7\u6c42\u65f6\u63d0\u524d\u8fc7\u671f\u3002"),(0,r.kt)("p",{parentName:"admonition"},"\u5982\u679c\u540c\u65f6\u6307\u5b9a\u4e86\u7edd\u5bf9\u8fc7\u671f\u548c\u53ef\u8c03\u8fc7\u671f\u65f6\u95f4\uff0c\u5219\u8fc7\u671f\u65f6\u95f4\u4ee5\u903b\u8f91\u65b9\u5f0f\u8fd0\u7b97\u3002 \u5982\u679c\u6ed1\u52a8\u8fc7\u671f\u65f6\u95f4\u95f4\u9694 \u6216 \u7edd\u5bf9\u8fc7\u671f\u65f6\u95f4\u901a\u8fc7\uff0c\u5219\u4ece\u7f13\u5b58\u4e2d\u9010\u51fa\u8be5\u9879\u3002"),(0,r.kt)("p",{parentName:"admonition"},"\u5982\uff1a"),(0,r.kt)("pre",{parentName:"admonition"},(0,r.kt)("code",{parentName:"pre",className:"language-cs",metastring:"showLineNumbers",showLineNumbers:!0},"_memoryCache.GetOrCreate(_timeCacheKey, entry =>\n{\n entry.SetSlidingExpiration(TimeSpan.FromSeconds(3));\n entry.AbsoluteExpirationRelativeToNow = TimeSpan.FromSeconds(20);\n return DateTime.Now;\n});\n")),(0,r.kt)("p",{parentName:"admonition"},"\u524d\u9762\u7684\u4ee3\u7801\u4fdd\u8bc1\u6570\u636e\u7684\u7f13\u5b58\u65f6\u95f4\u4e0d\u8d85\u8fc7\u7edd\u5bf9\u65f6\u95f4\u3002")),(0,r.kt)("h3",{id:"1433-\u624b\u52a8\u8bbe\u7f6e\u7f13\u5b58\u9009\u9879"},"14.3.3 \u624b\u52a8\u8bbe\u7f6e\u7f13\u5b58\u9009\u9879"),(0,r.kt)("p",null,"\u9664\u4e86\u4e0a\u9762\u7684 ",(0,r.kt)("inlineCode",{parentName:"p"},"Func\u4ece\u5e93
\u6570\u636e\u5e93\u4e0a\u4e0b\u6587",id:"92722-\u521b\u5efa-\u4ece\u5e93-\u6570\u636e\u5e93\u4e0a\u4e0b\u6587",level:3},{value:"9.27.2.3 \u6ce8\u518c \u4e3b\u4ece\u5e93
\u6570\u636e\u5e93\u4e0a\u4e0b\u6587",id:"92723-\u6ce8\u518c-\u4e3b\u4ece\u5e93-\u6570\u636e\u5e93\u4e0a\u4e0b\u6587",level:3},{value:"9.27.2.4 \u521b\u5efa Person
\u5b9e\u4f53",id:"92724-\u521b\u5efa-person-\u5b9e\u4f53",level:3},{value:"9.27.2.5 \u5c06 Person
\u8f6c\u6362\u6210\u6570\u636e\u5e93\u8868",id:"92725-\u5c06-person-\u8f6c\u6362\u6210\u6570\u636e\u5e93\u8868",level:3},{value:"9.27.2.6 \u56fa\u5b9a\u4e3b\u4ece\u5e93\u4f7f\u7528\u4f8b\u5b50",id:"92726-\u56fa\u5b9a\u4e3b\u4ece\u5e93\u4f7f\u7528\u4f8b\u5b50",level:3},{value:"9.27.2.7 \u968f\u673a
\u6216 \u81ea\u5b9a\u4e49
\u8fd4\u56de\u4ece\u5e93 \u2728",id:"92727-\u968f\u673a\u6216-\u81ea\u5b9a\u4e49\u8fd4\u56de\u4ece\u5e93-",level:3},{value:"9.27.3 \u4e3b\u4ece\u590d\u5236",id:"9273-\u4e3b\u4ece\u590d\u5236",level:2},{value:"9.27.4 \u4e3b\u4ece\u590d\u5236\u51e0\u79cd\u65b9\u5f0f",id:"9274-\u4e3b\u4ece\u590d\u5236\u51e0\u79cd\u65b9\u5f0f",level:2},{value:"9.27.4.1 \u540c\u6b65\u590d\u5236",id:"92741-\u540c\u6b65\u590d\u5236",level:3},{value:"9.27.4.2 \u5f02\u6b65\u590d\u5236",id:"92742-\u5f02\u6b65\u590d\u5236",level:3},{value:"9.27.4.3 \u534a\u540c\u6b65\u590d\u5236",id:"92743-\u534a\u540c\u6b65\u590d\u5236",level:3},{value:"9.27.5 SqlServer
\u4e3b\u5e93\u914d\u7f6e",id:"9275-sqlserver-\u4e3b\u5e93\u914d\u7f6e",level:2},{value:"9.27.5.1 \u6dfb\u52a0 \u672c\u5730\u53d1\u5e03
",id:"92751-\u6dfb\u52a0-\u672c\u5730\u53d1\u5e03",level:3},{value:"9.27.5.2 \u9009\u62e9 \u5206\u53d1\u670d\u52a1\u5668
",id:"92752-\u9009\u62e9-\u5206\u53d1\u670d\u52a1\u5668",level:3},{value:"9.27.5.3 \u542f\u7528 \u4ee3\u7406
",id:"92753-\u542f\u7528-\u4ee3\u7406",level:3},{value:"9.27.5.4 \u53d1\u5e03\u6570\u636e\u5e93",id:"92754-\u53d1\u5e03\u6570\u636e\u5e93",level:3},{value:"9.27.5.5 \u5feb\u7167\u53d1\u5e03",id:"92755-\u5feb\u7167\u53d1\u5e03",level:3},{value:"9.27.5.6 \u9009\u62e9\u53d1\u5e03\u9879\u76ee",id:"92756-\u9009\u62e9\u53d1\u5e03\u9879\u76ee",level:3},{value:"9.27.5.7 \u914d\u7f6e\u5206\u53d1\u8ba1\u5212",id:"92757-\u914d\u7f6e\u5206\u53d1\u8ba1\u5212",level:3},{value:"9.27.5.8 \u914d\u7f6e\u5b89\u5168\u8bbe\u7f6e",id:"92758-\u914d\u7f6e\u5b89\u5168\u8bbe\u7f6e",level:3},{value:"9.27.5.9 \u5b8c\u6210\u914d\u7f6e",id:"92759-\u5b8c\u6210\u914d\u7f6e",level:3},{value:"9.27.6 SqlServer
\u4ece\u5e93\u914d\u7f6e",id:"9276-sqlserver-\u4ece\u5e93\u914d\u7f6e",level:2},{value:"9.27.6.1 \u6dfb\u52a0 \u672c\u5730\u8ba2\u9605
",id:"92761-\u6dfb\u52a0-\u672c\u5730\u8ba2\u9605",level:3},{value:"9.27.6.2 \u9009\u62e9 \u5206\u53d1\u670d\u52a1\u5668
",id:"92762-\u9009\u62e9-\u5206\u53d1\u670d\u52a1\u5668",level:3},{value:"9.27.6.3 \u9009\u62e9 \u5206\u53d1\u4ee3\u7406\u4f4d\u7f6e
",id:"92763-\u9009\u62e9-\u5206\u53d1\u4ee3\u7406\u4f4d\u7f6e",level:3},{value:"9.27.6.4 \u9009\u62e9 \u8ba2\u9605\u6570\u636e\u5e93
",id:"92764-\u9009\u62e9-\u8ba2\u9605\u6570\u636e\u5e93",level:3},{value:"9.27.6.5 \u9009\u62e9 \u5206\u53d1\u5b89\u5168\u8bbe\u7f6e
",id:"92765-\u9009\u62e9-\u5206\u53d1\u5b89\u5168\u8bbe\u7f6e",level:3},{value:"9.27.6.6 \u9009\u62e9 \u540c\u6b65\u8ba1\u5212
",id:"92766-\u9009\u62e9-\u540c\u6b65\u8ba1\u5212",level:3},{value:"9.27.6.7 \u5b8c\u6210\u8ba2\u9605",id:"92767-\u5b8c\u6210\u8ba2\u9605",level:3},{value:"9.27.7 \u5206\u53d1\u5b9a\u4e49\u76d1\u89c6",id:"9277-\u5206\u53d1\u5b9a\u4e49\u76d1\u89c6",level:2},{value:"9.27.8 \u67e5\u770b\u4e3b\u4ece\u590d\u5236\u7ed3\u679c",id:"9278-\u67e5\u770b\u4e3b\u4ece\u590d\u5236\u7ed3\u679c",level:2},{value:"9.27.9 \u53cd\u9988\u4e0e\u5efa\u8bae",id:"9279-\u53cd\u9988\u4e0e\u5efa\u8bae",level:2}],d={toc:c};function k(e){var n=e.components,t=(0,a.Z)(e,s);return(0,o.kt)("wrapper",(0,r.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"9271-\u8bfb\u5199\u5206\u79bb"},"9.27.1 \u8bfb\u5199\u5206\u79bb"),(0,o.kt)("p",null,"\u5176\u5b9e\u5c31\u662f\u5c06\u6570\u636e\u5e93\u5206\u4e3a\u4e86\u4e3b\u4ece\u5e93\uff0c\u4e00\u4e2a\u4e3b\u5e93\u7528\u4e8e\u5199\u6570\u636e\uff0c\u591a\u4e2a\u4ece\u5e93\u5b8c\u6210\u8bfb\u6570\u636e\u7684\u64cd\u4f5c\uff0c\u4e3b\u4ece\u5e93\u4e4b\u95f4\u901a\u8fc7\u67d0\u79cd\u673a\u5236\u8fdb\u884c\u6570\u636e\u7684\u540c\u6b65\uff0c\u662f\u4e00\u79cd\u5e38\u89c1\u7684\u6570\u636e\u5e93\u67b6\u6784\u3002"),(0,o.kt)("img",{src:(0,i.Z)("img/readwrite.png"),style:{height:300}}),(0,o.kt)("h3",{id:"92711-\u89e3\u51b3\u4e86\u4ec0\u4e48\u95ee\u9898"},"9.27.1.1 \u89e3\u51b3\u4e86\u4ec0\u4e48\u95ee\u9898"),(0,o.kt)("p",null,"\u5927\u591a\u6570\u4e92\u8054\u7f51\u4e1a\u52a1\uff0c\u5f80\u5f80\u8bfb\u591a\u5199\u5c11\uff0c\u8fd9\u65f6\u5019\uff0c\u6570\u636e\u5e93\u7684\u8bfb\u4f1a\u9996\u5148\u6210\u4e3a\u6570\u636e\u5e93\u7684\u74f6\u9888\uff0c\u8fd9\u65f6\uff0c\u5982\u679c\u6211\u4eec\u5e0c\u671b\u80fd\u591f\u7ebf\u6027\u7684\u63d0\u5347\u6570\u636e\u5e93\u7684\u8bfb\u6027\u80fd\uff0c\u6d88\u9664\u8bfb\u5199\u9501\u51b2\u7a81\u4ece\u800c\u63d0\u5347\u6570\u636e\u5e93\u7684\u5199\u6027\u80fd\uff0c\u90a3\u4e48\u5c31\u53ef\u4ee5\u4f7f\u7528\u201c\u5206\u7ec4\u67b6\u6784\u201d\uff08\u8bfb\u5199\u5206\u79bb\u67b6\u6784\uff09\u3002"),(0,o.kt)("p",null,"\u7528\u4e00\u53e5\u8bdd\u6982\u62ec\uff0c\u8bfb\u5199\u5206\u79bb\u662f\u7528\u6765\u89e3\u51b3\u6570\u636e\u5e93\u7684\u8bfb\u6027\u80fd\u74f6\u9888\u7684\u3002"),(0,o.kt)("h3",{id:"92712-\u6ce8\u610f\u4e8b\u9879"},"9.27.1.2 \u6ce8\u610f\u4e8b\u9879"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"\u6570\u636e\u5e93\u8fde\u63a5\u6c60\u8981\u8fdb\u884c\u533a\u5206\uff0c\u54ea\u4e9b\u662f\u8bfb\u8fde\u63a5\u6c60\uff0c\u54ea\u4e2a\u662f\u5199\u8fde\u63a5\u6c60\uff0c\u7814\u53d1\u7684\u96be\u5ea6\u4f1a\u589e\u52a0\uff1b"),(0,o.kt)("li",{parentName:"ul"},"\u4e3a\u4e86\u4fdd\u8bc1\u9ad8\u53ef\u7528\uff0c\u8bfb\u8fde\u63a5\u6c60\u8981\u80fd\u591f\u5b9e\u73b0\u6545\u969c\u81ea\u52a8\u8f6c\u79fb\uff1b"),(0,o.kt)("li",{parentName:"ul"},"\u4e3b\u4ece\u7684\u4e00\u81f4\u6027\u95ee\u9898\u9700\u8981\u8003\u8651\u3002")),(0,o.kt)("h2",{id:"9272-\u5982\u4f55\u5b9e\u73b0"},"9.27.2 \u5982\u4f55\u5b9e\u73b0"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"Furion")," \u5728\u6570\u636e\u5e93\u6a21\u5757\u8bbe\u8ba1\u4e4b\u521d\uff0c\u5c31\u8003\u8651\u4e86\u8bfb\u5199\u5206\u79bb\u8fd9\u79cd\u60c5\u51b5\uff0c\u6240\u4ee5\u4ece\u5e95\u5c42\u5c31\u652f\u6301\u52a8\u6001\u5207\u6362\u6570\u636e\u5e93\u4e0a\u4e0b\u6587\u53ca\u8bfb\u5199\u64cd\u4f5c\u65b9\u6cd5\u7ea6\u675f\u3002"),(0,o.kt)("p",null,"\u8bfb\u5199\u5206\u79bb\u64cd\u4f5c\u4e3b\u8981\u4f7f\u7528 ",(0,o.kt)("inlineCode",{parentName:"p"},"IMSRepository")," \u4ed3\u50a8\uff0c\u8be5\u4ed3\u50a8\u5df2\u7ecf\u4e3a\u5f00\u53d1\u8005\u63d0\u4f9b\u65b9\u4fbf\u7684\u64cd\u4f5c\u8c03\u7528\u3002\u5f53\u7136\u4e5f\u53ef\u4ee5\u4e0d\u4f7f\u7528\u8be5\u4ed3\u50a8\u3002"),(0,o.kt)("p",null,"\u4e0b\u9762\u5c31\u7ed9\u5927\u5bb6\u6f14\u793a\u5982\u4f55\u8bfb\u5199\u591a\u5e93\u8bfb\u5199\u64cd\u4f5c\u3002"),(0,o.kt)("h3",{id:"92721-\u521b\u5efa-\u4e3b\u5e93-\u6570\u636e\u5e93\u4e0a\u4e0b\u6587"},"9.27.2.1 \u521b\u5efa ",(0,o.kt)("inlineCode",{parentName:"h3"},"\u4e3b\u5e93")," \u6570\u636e\u5e93\u4e0a\u4e0b\u6587"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-cs",metastring:"showLineNumbers",showLineNumbers:!0},'using Furion.DatabaseAccessor;\nusing Microsoft.EntityFrameworkCore;\n\nnamespace Furion.EntityFramework.Core\n{\n /// Inject
\u65b9\u6cd5\u6709\u54ea\u4e9b",id:"242-inject-\u65b9\u6cd5\u6709\u54ea\u4e9b",level:2},{value:"2.4.3 \u5728 Program.cs
\u4e2d\u4f7f\u7528",id:"243-\u5728-programcs-\u4e2d\u4f7f\u7528",level:2},{value:"2.4.3.1 Inject()
\u65b9\u6cd5",id:"2431-inject-\u65b9\u6cd5",level:3},{value:"2.4.4 Startup.ConfigureServices
\u4f7f\u7528",id:"244-startupconfigureservices-\u4f7f\u7528",level:2},{value:"2.4.4.1 AddInject()
\u65b9\u6cd5",id:"2441-addinject-\u65b9\u6cd5",level:3},{value:"2.4.4.2 AddInjectBase()
\u65b9\u6cd5",id:"2442-addinjectbase-\u65b9\u6cd5",level:3},{value:"2.4.4.3 AddInjectMini()
\u65b9\u6cd5",id:"2443-addinjectmini-\u65b9\u6cd5",level:3},{value:"2.4.4.4 AddInjectWithUnifyResult()
\u65b9\u6cd5",id:"2444-addinjectwithunifyresult-\u65b9\u6cd5",level:3},{value:"2.4.5 Startup.Configure
\u4f7f\u7528",id:"245-startupconfigure-\u4f7f\u7528",level:2},{value:"2.4.5.1 UseInject()
\u65b9\u6cd5",id:"2451-useinject-\u65b9\u6cd5",level:3},{value:"2.4.5.2 UseInjectBase()
\u65b9\u6cd5",id:"2452-useinjectbase-\u65b9\u6cd5",level:3},{value:"2.4.6 \u914d\u7f6e Inject()
\u9ed8\u8ba4\u6ce8\u518c\u670d\u52a1",id:"246-\u914d\u7f6e-inject-\u9ed8\u8ba4\u6ce8\u518c\u670d\u52a1",level:2},{value:"2.4.7 \u53cd\u9988\u4e0e\u5efa\u8bae",id:"247-\u53cd\u9988\u4e0e\u5efa\u8bae",level:2}],u={toc:s};function m(e){var n=e.components,t=(0,r.Z)(e,l);return(0,a.kt)("wrapper",(0,i.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"241-inject-\u8bbe\u8ba1"},"2.4.1 ",(0,a.kt)("inlineCode",{parentName:"h2"},"Inject")," \u8bbe\u8ba1"),(0,a.kt)("p",null,(0,a.kt)("inlineCode",{parentName:"p"},"Inject [\u026an\u02c8d\u0292ekt]")," \u610f\u601d\u662f ",(0,a.kt)("inlineCode",{parentName:"p"},"\u6ce8\u5165\uff0c\u6ce8\u5c04")," \u7684\u610f\u601d\uff0c\u5728\u8fd9\u91cc\u610f\u4e3a\u4f7f\u7528\u6700\u5c0f\u7684\u4fb5\u5165\u5f0f\u5bf9\u5e94\u7528\u8fdb\u884c\u673a\u80fd\u6539\u9020\u3002"),(0,a.kt)("p",null,(0,a.kt)("inlineCode",{parentName:"p"},"Inject()")," \u65b9\u6cd5\u662f ",(0,a.kt)("inlineCode",{parentName:"p"},"Furion")," \u6846\u67b6\u63d0\u4f9b\u7684\u6700\u5c0f\u4fb5\u5165\u5f0f\u7684\u65b9\u6cd5\uff0c\u53ef\u4ee5\u8ba9\u4efb\u4f55 ",(0,a.kt)("inlineCode",{parentName:"p"},"ASP.NET Core")," Web \u540e\u7aef\u9879\u76ee\u77ac\u95f4\u652f\u6301\u6240\u6709 ",(0,a.kt)("inlineCode",{parentName:"p"},"Furion")," \u6846\u67b6\u7279\u6027\u3002"),(0,a.kt)("h2",{id:"242-inject-\u65b9\u6cd5\u6709\u54ea\u4e9b"},"2.4.2 ",(0,a.kt)("inlineCode",{parentName:"h2"},"Inject")," \u65b9\u6cd5\u6709\u54ea\u4e9b"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"Inject()"),"\uff1a\u5728 ",(0,a.kt)("inlineCode",{parentName:"li"},"Program.cs")," \u4e2d\u6ce8\u518c"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"AddInject()"),"\uff1a\u5728 ",(0,a.kt)("inlineCode",{parentName:"li"},"Startup.cs")," \u7684 ",(0,a.kt)("inlineCode",{parentName:"li"},"ConfigureServices")," \u4e2d\u6ce8\u518c"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"AddInjectBase()"),"\uff1a\u5728 ",(0,a.kt)("inlineCode",{parentName:"li"},"Startup.cs")," \u7684 ",(0,a.kt)("inlineCode",{parentName:"li"},"ConfigureServices")," \u4e2d\u6ce8\u518c"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"AddInjectWithUnifyResult()/ AddInjectWithUnifyResultappsettings.json
\u4fe1\u606f",id:"4231-\u914d\u7f6e-appsettingsjson-\u4fe1\u606f",level:3},{value:"4.2.3.2 \u521b\u5efa AppInfoOptions
\u5f3a\u7c7b\u578b\u7c7b",id:"4232-\u521b\u5efa-appinfooptions-\u5f3a\u7c7b\u578b\u7c7b",level:3},{value:"4.2.3.3 \u6ce8\u518c AppInfoOptions
\u670d\u52a1",id:"4233-\u6ce8\u518c-appinfooptions-\u670d\u52a1",level:3},{value:"4.2.3.4 \u8bfb\u53d6 AppInfoOptions
\u4fe1\u606f",id:"4234-\u8bfb\u53d6-appinfooptions-\u4fe1\u606f",level:3},{value:"4.2.3.5 \u5982\u4f55\u9009\u62e9\u8bfb\u53d6\u65b9\u5f0f",id:"4235-\u5982\u4f55\u9009\u62e9\u8bfb\u53d6\u65b9\u5f0f",level:3},{value:"4.2.4 \u9009\u9879\u63a5\u53e3\u8bf4\u660e",id:"424-\u9009\u9879\u63a5\u53e3\u8bf4\u660e",level:2},{value:"4.2.5 \u9009\u9879\u81ea\u5b9a\u4e49\u914d\u7f6e",id:"425-\u9009\u9879\u81ea\u5b9a\u4e49\u914d\u7f6e",level:2},{value:"4.2.5.1 \u9009\u9879\u67e5\u627e\u952e\u6d41\u7a0b",id:"4251-\u9009\u9879\u67e5\u627e\u952e\u6d41\u7a0b",level:3},{value:"4.2.6 [OptionsSettings]
\u8bf4\u660e",id:"426-optionssettings-\u8bf4\u660e",level:2},{value:"4.2.7 \u9009\u9879\u9a8c\u8bc1",id:"427-\u9009\u9879\u9a8c\u8bc1",level:2},{value:"4.2.8 \u9009\u9879\u540e\u671f\u914d\u7f6e",id:"428-\u9009\u9879\u540e\u671f\u914d\u7f6e",level:2},{value:"4.2.9 \u9009\u9879\u66f4\u6539\u901a\u77e5\uff08\u70ed\u66f4\u65b0
\uff09",id:"429-\u9009\u9879\u66f4\u6539\u901a\u77e5\u70ed\u66f4\u65b0",level:2},{value:"4.2.9.1 \u5173\u4e8e\u591a\u6b21\u89e6\u53d1\u95ee\u9898",id:"4291-\u5173\u4e8e\u591a\u6b21\u89e6\u53d1\u95ee\u9898",level:3},{value:"4.2.10 \u9009\u9879\u7684\u4f18\u7f3a\u70b9",id:"4210-\u9009\u9879\u7684\u4f18\u7f3a\u70b9",level:2},{value:"4.2.11 \u81ea\u5b9a\u4e49\u5c5e\u6027 Key
\u6620\u5c04",id:"4211-\u81ea\u5b9a\u4e49\u5c5e\u6027-key-\u6620\u5c04",level:2},{value:"4.2.12 \u53cd\u9988\u4e0e\u5efa\u8bae",id:"4212-\u53cd\u9988\u4e0e\u5efa\u8bae",level:2}],k={toc:d};function g(n){var e=n.components,t=(0,o.Z)(n,s);return(0,a.kt)("wrapper",(0,i.Z)({},k,t,{components:e,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"421-\u4ec0\u4e48\u662f\u9009\u9879"},"4.2.1 \u4ec0\u4e48\u662f\u9009\u9879"),(0,a.kt)("p",null,"\u9009\u9879\u662f ",(0,a.kt)("inlineCode",{parentName:"p"},"ASP.NET Core")," \u63a8\u8350\u7684\u52a8\u6001\u8bfb\u53d6\u914d\u7f6e\u7684\u65b9\u5f0f\uff0c\u8fd9\u79cd\u65b9\u5f0f\u5c06\u914d\u7f6e\u6587\u4ef6\u6570\u636e\u7528\u4e00\u4e2a",(0,a.kt)("strong",{parentName:"p"},"\u5f3a\u7c7b\u578b"),"\u6765\u6258\u7ba1\uff0c\u80fd\u591f\u5b9e\u73b0\u914d\u7f6e\u9a8c\u8bc1\u3001\u9ed8\u8ba4\u503c\u914d\u7f6e\u3001\u5b9e\u65f6\u8bfb\u53d6\u7b49\u529f\u80fd\u3002"),(0,a.kt)("h2",{id:"422-\u4e0e\u914d\u7f6e\u7684\u533a\u522b"},"4.2.2 \u4e0e\u914d\u7f6e\u7684\u533a\u522b"),(0,a.kt)("p",null,"\u9009\u9879\u5b9e\u9645\u4e0a\u4e5f\u662f\u914d\u7f6e\uff0c\u4f46\u5728\u540e\u8005\u7684\u57fa\u7840\u4e0a\u6dfb\u52a0\u4e86\u914d\u7f6e\u9a8c\u8bc1\u3001\u9ed8\u8ba4\u503c/\u540e\u671f\u914d\u7f6e\u8bbe\u5b9a\u53ca\u63d0\u4f9b\u4e86\u591a\u79cd\u63a5\u53e3\u8bfb\u53d6\u914d\u7f6e\u4fe1\u606f\uff0c\u540c\u65f6\u8fd8\u652f\u6301\u4f9b\u914d\u7f6e\u66f4\u6539\u901a\u77e5\u7b49\u5f3a\u5927\u7075\u6d3b\u529f\u80fd\u3002"),(0,a.kt)("p",null,"\u6240\u4ee5\uff0c\u9664\u4e86\u4e00\u6b21\u6027\u8bfb\u53d6\u4f7f\u7528\u7684\u914d\u7f6e\u4ee5\u5916\uff0c\u90fd\u5e94\u8be5\u9009\u7528 ",(0,a.kt)("strong",{parentName:"p"},"\u9009\u9879")," \u66ff\u6362 ",(0,a.kt)("strong",{parentName:"p"},"\u914d\u7f6e"),"\u3002"),(0,a.kt)("admonition",{title:"\u77e5\u8bc6\u5bfc\u822a",type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u6709\u5173\u914d\u7f6e\u8bf4\u660e\u53ef\u67e5\u770b\u300a",(0,a.kt)("a",{parentName:"p",href:"/docs/configuration"},"4.1 \u914d\u7f6e"),"\u300b \u7ae0\u8282\u3002")),(0,a.kt)("h2",{id:"423-\u9009\u9879\u7684\u4f7f\u7528"},"4.2.3 \u9009\u9879\u7684\u4f7f\u7528"),(0,a.kt)("p",null,"\u5047\u8bbe\u6211\u4eec\u9700\u8981\u5728\u7cfb\u7edf\u8fd0\u884c\u65f6\u83b7\u53d6",(0,a.kt)("strong",{parentName:"p"},"\u7cfb\u7edf\u540d\u79f0\u3001\u7248\u672c\u53f7\u53ca\u7248\u6743\u4fe1\u606f"),"\uff0c\u8fd9\u4e9b\u4fe1\u606f\u53ef\u80fd\u968f\u65f6\u53d8\u5316\u800c\u4e14\u9700\u8981\u5728\u591a\u4e2a\u5730\u65b9\u4f7f\u7528\u3002\u8fd9\u65f6\u5c31\u9700\u8981\u5c06\u8fd9\u4e9b\u4fe1\u606f\u914d\u7f6e\u8d77\u6765\u3002\u5177\u4f53\u6b65\u9aa4\u5982\u4e0b\uff1a"),(0,a.kt)("h3",{id:"4231-\u914d\u7f6e-appsettingsjson-\u4fe1\u606f"},"4.2.3.1 \u914d\u7f6e ",(0,a.kt)("inlineCode",{parentName:"h3"},"appsettings.json")," \u4fe1\u606f"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-json",metastring:"showLineNumbers {2-6}",showLineNumbers:!0,"":!0,"{2-6}":!0},'{\n "AppInfo": {\n "Name": "Furion",\n "Version": "1.0.0",\n "Company": "Baiqian"\n }\n}\n')),(0,a.kt)("h3",{id:"4232-\u521b\u5efa-appinfooptions-\u5f3a\u7c7b\u578b\u7c7b"},"4.2.3.2 \u521b\u5efa ",(0,a.kt)("inlineCode",{parentName:"h3"},"AppInfoOptions")," \u5f3a\u7c7b\u578b\u7c7b"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs",metastring:"showLineNumbers {1,5}",showLineNumbers:!0,"":!0,"{1,5}":!0},"using Furion.ConfigurableOptions;\n\nnamespace Furion.Application\n{\n public class AppInfoOptions : IConfigurableOptions\n {\n public string Name { get; set; }\n public string Version { get; set; }\n public string Company { get; set; }\n }\n}\n")),(0,a.kt)("admonition",{title:"\u6e29\u99a8\u63d0\u793a",type:"note"},(0,a.kt)("p",{parentName:"admonition"},"\u5efa\u8bae\u6240\u6709\u9009\u9879\u7c7b\u90fd\u5e94\u8be5\u4ee5 ",(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("inlineCode",{parentName:"strong"},"Options"))," \u547d\u540d\u7ed3\u5c3e\u3002"),(0,a.kt)("p",{parentName:"admonition"},"\u53e6\u5916\uff0c",(0,a.kt)("inlineCode",{parentName:"p"},"Furion")," \u6846\u67b6\u63d0\u4f9b\u4e86\u975e\u5e38\u7075\u6d3b\u7684\u6ce8\u518c\u9009\u9879\u670d\u52a1\u7684\u65b9\u6cd5\uff0c\u53ea\u9700\u8981\u7ee7\u627f ",(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("inlineCode",{parentName:"strong"},"IConfigurableOptions"))," \u63a5\u53e3\u5373\u53ef\uff0c\u8be5\u63a5\u53e3\u4f4d\u4e8e ",(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("inlineCode",{parentName:"strong"},"Furion.ConfigurableOptions"))," \u547d\u540d\u7a7a\u95f4\u4e0b\u3002")),(0,a.kt)("h3",{id:"4233-\u6ce8\u518c-appinfooptions-\u670d\u52a1"},"4.2.3.3 \u6ce8\u518c ",(0,a.kt)("inlineCode",{parentName:"h3"},"AppInfoOptions")," \u670d\u52a1"),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"\u9009\u9879\u4e0d\u540c\u4e8e\u914d\u7f6e\uff0c\u9700\u5728\u5e94\u7528\u542f\u52a8\u65f6\u6ce8\u518c")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs",metastring:'showLineNumbers {12} title="Furion.Web.Core\\FurWebCoreStartup.cs"',showLineNumbers:!0,"":!0,"{12}":!0,title:'"Furion.Web.Core\\FurWebCoreStartup.cs"'},"using Microsoft.AspNetCore.Builder;\nusing Microsoft.AspNetCore.Hosting;\nusing Microsoft.Extensions.DependencyInjection;\n\nnamespace Furion.Web.Core\n{\n [AppStartup(800)]\n public sealed class FurWebCoreStartup : AppStartup\n {\n public void ConfigureServices(IServiceCollection services)\n {\n services.AddConfigurableOptionsVisual Studio
\u8c03\u8bd5 Nuget
\u5305",id:"293-visual-studio-\u8c03\u8bd5-nuget-\u5305",level:2},{value:"2.9.4 \u53cd\u9988\u4e0e\u5efa\u8bae",id:"294-\u53cd\u9988\u4e0e\u5efa\u8bae",level:2}],g={toc:d};function m(e){var t=e.components,n=(0,i.Z)(e,u);return(0,a.kt)("wrapper",(0,r.Z)({},g,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"291-\u5173\u4e8e\u672c\u5730\u6d4b\u8bd5\u5305"},"2.9.1 \u5173\u4e8e\u672c\u5730\u6d4b\u8bd5\u5305"),(0,a.kt)("p",null,"\u6b63\u5e38\u60c5\u51b5\u4e0b\uff0c\u6211\u4eec\u90fd\u662f\u901a\u8fc7 ",(0,a.kt)("inlineCode",{parentName:"p"},"Nuget")," \u5728\u7ebf\u5e73\u53f0\uff08Visual Studio \u5185\u7f6e\u7684 ",(0,a.kt)("inlineCode",{parentName:"p"},"Nuget")," \u5305\u7ba1\u7406\u5668\uff09\u5b89\u88c5\u62d3\u5c55\u4f9d\u8d56\uff0c",(0,a.kt)("strong",{parentName:"p"},"\u4f46\u6709\u65f6\u5019\u6211\u4eec\u4e0d\u5e0c\u671b\u53d1\u5e03\u5230 ",(0,a.kt)("inlineCode",{parentName:"strong"},"Nuget")," \u5e73\u53f0\u6216\u8005\u53ea\u60f3\u5728\u672c\u5730\u4f7f\u7528\u53c8\u6216\u8005\u5148\u5728\u672c\u5730\u6d4b\u8bd5\u901a\u8fc7\u518d\u53d1\u5e03\u3002")),(0,a.kt)("p",null,"\u8fd9\u6837\u505a\u7684\u597d\u5904\u662f\uff1a"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u53ef\u4ee5\u6709\u6548\u4fdd\u62a4\u516c\u53f8\u6838\u5fc3\u4ee3\u7801"),(0,a.kt)("li",{parentName:"ul"},"\u65b9\u4fbf\u5f00\u6e90\u9879\u76ee\u6d4b\u8bd5")),(0,a.kt)("h2",{id:"292-\u5982\u4f55\u914d\u7f6e"},"2.9.2 \u5982\u4f55\u914d\u7f6e"),(0,a.kt)("h3",{id:"2921-\u6d4b\u8bd5\u5305\u547d\u540d\u89c4\u5219"},"2.9.2.1 \u6d4b\u8bd5\u5305\u547d\u540d\u89c4\u5219"),(0,a.kt)("p",null,"\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c",(0,a.kt)("inlineCode",{parentName:"p"},"Furion")," \u4f1a\u6839\u636e ",(0,a.kt)("inlineCode",{parentName:"p"},"Furion.\u7248\u672c\u53f7-beta.Issue\u7f16\u53f7")," \u89c4\u5219\u751f\u6210 ",(0,a.kt)("inlineCode",{parentName:"p"},".nupkg")," \u548c ",(0,a.kt)("inlineCode",{parentName:"p"},".snupkg")," \u5305\uff0c\u524d\u8005\u662f\u4e0d\u5305\u542b\u8c03\u8bd5\u7684\u65e0\u7b26\u53f7 ",(0,a.kt)("inlineCode",{parentName:"p"},"Nuget")," \u5305\uff0c\u540e\u8005\u5219\u662f\u8c03\u8bd5\u7b26\u53f7\u5305\uff08\u65b9\u4fbf ",(0,a.kt)("inlineCode",{parentName:"p"},"IDE")," \u8c03\u8bd5\u7528\u7684\uff09\uff0c\u5982\uff1a"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-showLineNumbers",metastring:'title="D:\\Furion_Nuget_Test_Packages"',title:'"D:\\Furion_Nuget_Test_Packages"'},"Furion.4.2.3-beta-I5MM3O.nupkg\nFurion.4.2.3-beta-I5MM3O.snupkg\n")),(0,a.kt)("p",null,"\u5176\u4e2d ",(0,a.kt)("inlineCode",{parentName:"p"},"I5MM3O")," \u5bf9\u5e94\u7684\u6b63\u662f ",(0,a.kt)("inlineCode",{parentName:"p"},"Issue")," \u7684\u7f16\u53f7\uff1a",(0,a.kt)("a",{parentName:"p",href:"https://gitee.com/dotnetchina/Furion/issues/I5MM3O"},"https://gitee.com/dotnetchina/Furion/issues/I5MM3O")),(0,a.kt)("h3",{id:"2922-\u914d\u7f6e\u672c\u5730\u5305\u8def\u5f84"},"2.9.2.2 \u914d\u7f6e\u672c\u5730\u5305\u8def\u5f84"),(0,a.kt)("p",null,"\u6709\u4e86\u8fd9\u4e24\u4e2a\u5305\u4e4b\u540e\uff0c\u5c31\u53ef\u4ee5\u5728\u672c\u5730\u78c1\u76d8\u4e2d\u521b\u5efa\u6587\u4ef6\u5939\u5e76\u653e\u8fdb\u53bb\uff0c\u5982 ",(0,a.kt)("inlineCode",{parentName:"p"},"D:\\Furion_Nuget_Test_Packages"),"\u3002"),(0,a.kt)("img",{src:(0,o.Z)("img/ng1.png")}),(0,a.kt)("h3",{id:"2923-\u5728-visual-studio-\u4e2d\u914d\u7f6e\u8def\u5f84"},"2.9.2.3 \u5728 ",(0,a.kt)("inlineCode",{parentName:"h3"},"Visual Studio")," \u4e2d\u914d\u7f6e\u8def\u5f84"),(0,a.kt)("img",{src:(0,o.Z)("img/ng2.png")}),(0,a.kt)("img",{src:(0,o.Z)("img/ng3.png")}),(0,a.kt)("img",{src:(0,o.Z)("img/ng4.png")}),(0,a.kt)("admonition",{title:"\u5173\u4e8e\u547d\u4ee4\u884c\u64cd\u4f5c",type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u5982\u679c\u4e0d\u4f7f\u7528\u53ef\u89c6\u5316 ",(0,a.kt)("inlineCode",{parentName:"p"},"IDE")," \u914d\u7f6e\uff0c\u53ef\u901a\u8fc7\u4e0b\u5217\u547d\u4ee4\u884c\u914d\u7f6e\uff1a"),(0,a.kt)("pre",{parentName:"admonition"},(0,a.kt)("code",{parentName:"pre",className:"language-bash"},'dotnet restore "YourProject.Web.Entry/YourProject.Web.Entry.csproj" -s "D:\\Furion_Nuget_Test_Packages";\ndotnet restore "YourProject.Web.Entry/YourProject.Web.Entry.csproj" -s "https://api.nuget.org/v3/index.json";\n'))),(0,a.kt)("h3",{id:"2924-\u9009\u62e9\u6d4b\u8bd5\u7248\u5b89\u88c5\u6216\u66f4\u65b0"},"2.9.2.4 \u9009\u62e9\u6d4b\u8bd5\u7248\u5b89\u88c5\u6216\u66f4\u65b0"),(0,a.kt)("img",{src:(0,o.Z)("img/ng5.png")}),(0,a.kt)("img",{src:(0,o.Z)("img/ng6.png")}),(0,a.kt)("img",{src:(0,o.Z)("img/ng7.png")}),(0,a.kt)("br",null),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"\u6d4b\u8bd5\u901a\u8fc7\u540e\u53ef\u4ee5\u5220\u9664\u4e4b\u524d\u7684\u914d\u7f6e\u5373\u53ef"),"\uff0c\u5982\uff1a"),(0,a.kt)("img",{src:(0,o.Z)("img/ng8.png")}),(0,a.kt)("h2",{id:"293-visual-studio-\u8c03\u8bd5-nuget-\u5305"},"2.9.3 ",(0,a.kt)("inlineCode",{parentName:"h2"},"Visual Studio")," \u8c03\u8bd5 ",(0,a.kt)("inlineCode",{parentName:"h2"},"Nuget")," \u5305"),(0,a.kt)("p",null,(0,a.kt)("inlineCode",{parentName:"p"},"Furion")," \u63d0\u4f9b\u4e86 ",(0,a.kt)("inlineCode",{parentName:"p"},".snupkg")," \u5305\uff0c\u5728\u5b89\u88c5 ",(0,a.kt)("inlineCode",{parentName:"p"},"Furion")," \u7684\u65f6\u5019\u81ea\u52a8\u4e0b\u8f7d\u5230\u672c\u5730\uff0c\u5982\u9700\u542f\u7528\u6e90\u7801\u8c03\u8bd5\uff0c\u53ea\u9700\u8981\u542f\u7528\u4ee5\u4e0b\u914d\u7f6e\u5373\u53ef\uff1a"),(0,a.kt)("img",{src:(0,o.Z)("img/vs10.png")}),(0,a.kt)("p",null,"\u542f\u7528\u4e4b\u540e\u91cd\u65b0\u7f16\u8bd1\u89e3\u51b3\u65b9\u6848\u5c31\u53ef\u4ee5\u901a\u8fc7 ",(0,a.kt)("inlineCode",{parentName:"p"},"F12")," \u8df3\u8f6c\u5230\u6e90\u4ee3\u7801\u533a\u5e76\u8c03\u8bd5\u6e90\u4ee3\u7801\u4e86\u3002"),(0,a.kt)("h2",{id:"294-\u53cd\u9988\u4e0e\u5efa\u8bae"},"2.9.4 \u53cd\u9988\u4e0e\u5efa\u8bae"),(0,a.kt)("admonition",{title:"\u4e0e\u6211\u4eec\u4ea4\u6d41",type:"note"},(0,a.kt)("p",{parentName:"admonition"},"\u7ed9 Furion \u63d0 ",(0,a.kt)("a",{parentName:"p",href:"https://gitee.com/dotnetchina/Furion/issues/new?issue"},"Issue"),"\u3002")))}m.isMDXComponent=!0}}]);
\ No newline at end of file
diff --git a/handbook/build/assets/js/1494bf35.034efa6d.js b/handbook/build/assets/js/1494bf35.034efa6d.js
new file mode 100644
index 00000000000..a68c74a357f
--- /dev/null
+++ b/handbook/build/assets/js/1494bf35.034efa6d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkfurion=self.webpackChunkfurion||[]).push([[5426],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return s}});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;tASP.NET Core Web \u5e94\u7528\u7a0b\u5e8f
",id:"211-\u521b\u5efa-aspnet-core-web-\u5e94\u7528\u7a0b\u5e8f",level:3},{value:"2.2 \u6dfb\u52a0 Furion
\u4f9d\u8d56\u5305",id:"22-\u6dfb\u52a0-furion-\u4f9d\u8d56\u5305",level:2},{value:"2.3 Furion
\u57fa\u672c\u914d\u7f6e",id:"23-furion-\u57fa\u672c\u914d\u7f6e",level:2},{value:"2.3.1 Program.cs
\u6dfb\u52a0 Inject()
",id:"231-programcs-\u6dfb\u52a0-inject",level:3},{value:"2.4 \u542f\u52a8\u6d4f\u89c8\u5668",id:"24-\u542f\u52a8\u6d4f\u89c8\u5668",level:2},{value:"2.5 WebApplication
\u8bf4\u660e \ud83c\udf83",id:"25-webapplication-\u8bf4\u660e-",level:2}],s={toc:m};function k(e){var t=e.components,n=(0,i.Z)(e,p);return(0,a.kt)("wrapper",(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("admonition",{title:"\u63a8\u8350\u4f7f\u7528\u811a\u624b\u67b6",type:"tip"},(0,a.kt)("p",{parentName:"admonition"},(0,a.kt)("inlineCode",{parentName:"p"},"Furion")," \u5b98\u65b9\u63d0\u4f9b\u4e86\u975e\u5e38\u7075\u6d3b\u65b9\u4fbf\u7684\u811a\u624b\u67b6\uff0c\u53ef\u4ee5\u5feb\u901f\u7684\u521b\u5efa\u591a\u5c42\u67b6\u6784\u9879\u76ee\u3002"),(0,a.kt)("p",{parentName:"admonition"},"\u63a8\u8350\u4f7f\u7528 \u300a",(0,a.kt)("a",{parentName:"p",href:"/docs/template"},"2.2 \u5b98\u65b9\u811a\u624b\u67b6"),"\u300b\u4ee3\u66ff\u672c\u7ae0\u8282\u529f\u80fd\u3002")),(0,a.kt)("admonition",{title:"\u5165\u95e8\u6761\u4ef6",type:"note"},(0,a.kt)("p",{parentName:"admonition"},"\u5bf9 ",(0,a.kt)("inlineCode",{parentName:"p"},".NET Core/ASP.NET Core")," \u6709\u4e00\u5b9a\u57fa\u7840\u4e86\u89e3\uff0c\u8fd8\u672a\u63a5\u89e6\u7684\u53ef\u5148\u770b ",(0,a.kt)("a",{parentName:"p",href:"https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/?view=aspnetcore-7.0&tabs=windows"},"\u3010ASP.NET Core \u57fa\u7840\u3011"))),(0,a.kt)("h2",{id:"21-\u521b\u5efa-web-\u9879\u76ee"},"2.1 \u521b\u5efa ",(0,a.kt)("inlineCode",{parentName:"h2"},"Web")," \u9879\u76ee"),(0,a.kt)("admonition",{title:"\u73af\u5883\u8981\u6c42",type:"note"},(0,a.kt)("p",{parentName:"admonition"},"\u4f7f\u7528 ",(0,a.kt)("inlineCode",{parentName:"p"},"Furion")," \u4e4b\u524d\u5148\u786e\u4fdd\u5b89\u88c5\u4e86\u6700\u65b0\u7684 ",(0,a.kt)("inlineCode",{parentName:"p"},".NET 7 SDK")," \u5e76\u5b89\u88c5 ",(0,a.kt)("inlineCode",{parentName:"p"},"Visual Studio 2022 Preview")," \u6700\u65b0\u7248\u3002")),(0,a.kt)("h3",{id:"211-\u521b\u5efa-aspnet-core-web-\u5e94\u7528\u7a0b\u5e8f"},"2.1.1 \u521b\u5efa ",(0,a.kt)("inlineCode",{parentName:"h3"},"ASP.NET Core Web \u5e94\u7528\u7a0b\u5e8f")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u6253\u5f00 ",(0,a.kt)("inlineCode",{parentName:"li"},"Visual Studio 2022 Preview")," \u5e76\u521b\u5efa ",(0,a.kt)("inlineCode",{parentName:"li"},"Web")," \u9879\u76ee")),(0,a.kt)("img",{src:(0,o.Z)("img/rmn1.png")}),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u914d\u7f6e\u9879\u76ee\u540d\u79f0")),(0,a.kt)("img",{src:(0,o.Z)("img/rmn2.png")}),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u9009\u62e9 ",(0,a.kt)("inlineCode",{parentName:"li"},"WebAPI")," \u9879\u76ee")),(0,a.kt)("img",{src:(0,o.Z)("img/net71.png")}),(0,a.kt)("admonition",{title:"\u7279\u522b\u6ce8\u610f",type:"warning"},(0,a.kt)("p",{parentName:"admonition"},(0,a.kt)("inlineCode",{parentName:"p"},"Furion")," \u5df2\u7ecf\u5185\u7f6e\u4e86 ",(0,a.kt)("inlineCode",{parentName:"p"},"Swagger")," \u89c4\u8303\u5316\u5e93\uff0c\u6240\u4ee5\u521b\u5efa\u65f6",(0,a.kt)("strong",{parentName:"p"},"\u65e0\u9700\u52fe\u9009")," ",(0,a.kt)("inlineCode",{parentName:"p"},"Enable OpenAPI support")," \u9009\u9879\u3002\u5426\u5219\u63d0\u793a\u7248\u672c\u4e0d\u4e00\u81f4\u4ea7\u751f\u51b2\u7a81\u3002")),(0,a.kt)("h2",{id:"22-\u6dfb\u52a0-furion-\u4f9d\u8d56\u5305"},"2.2 \u6dfb\u52a0 ",(0,a.kt)("inlineCode",{parentName:"h2"},"Furion")," \u4f9d\u8d56\u5305"),(0,a.kt)("img",{src:(0,o.Z)("img/net72.png")}),(0,a.kt)("h2",{id:"23-furion-\u57fa\u672c\u914d\u7f6e"},"2.3 ",(0,a.kt)("inlineCode",{parentName:"h2"},"Furion")," \u57fa\u672c\u914d\u7f6e"),(0,a.kt)("h3",{id:"231-programcs-\u6dfb\u52a0-inject"},"2.3.1 ",(0,a.kt)("inlineCode",{parentName:"h3"},"Program.cs")," \u6dfb\u52a0 ",(0,a.kt)("inlineCode",{parentName:"h3"},"Inject()")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs",metastring:"showLineNumbers {1,3,11}",showLineNumbers:!0,"":!0,"{1,3,11}":!0},"var builder = WebApplication.CreateBuilder(args).Inject();\n\nbuilder.Services.AddControllers().AddInject();\n\nvar app = builder.Build();\n\napp.UseHttpsRedirection();\n\napp.UseAuthorization();\n\napp.UseInject();\n\napp.MapControllers();\n\napp.Run();\n")),(0,a.kt)("admonition",{title:"\u5c0f\u63d0\u9192",type:"important"},(0,a.kt)("p",{parentName:"admonition"},"\u5982\u679c ",(0,a.kt)("inlineCode",{parentName:"p"},"app.UseInject()")," \u4e0d\u8f93\u5165\u53c2\u6570\uff0c\u5219\u9ed8\u8ba4\u5730\u5740\u4e3a ",(0,a.kt)("inlineCode",{parentName:"p"},"/api"),"\uff0c\u5982\u679c\u8f93\u5165 ",(0,a.kt)("inlineCode",{parentName:"p"},"string.Empty")," \u5219\u4e3a ",(0,a.kt)("inlineCode",{parentName:"p"},"/")," \u76ee\u5f55\u3002\u5982\u679c\u8f93\u5165\u4efb\u610f\u5b57\u7b26\u4e32\uff0c\u5219\u4e3a ",(0,a.kt)("inlineCode",{parentName:"p"},"/\u4efb\u610f\u5b57\u7b26\u4e32")," \u76ee\u5f55\u3002")),(0,a.kt)("h2",{id:"24-\u542f\u52a8\u6d4f\u89c8\u5668"},"2.4 \u542f\u52a8\u6d4f\u89c8\u5668"),(0,a.kt)("p",null,"\u542f\u52a8\u6d4f\u89c8\u5668\u67e5\u770b\u6548\u679c\u3002"),(0,a.kt)("img",{src:(0,o.Z)("img/rmn5.png")}),(0,a.kt)("admonition",{title:"\u5c0f\u77e5\u8bc6",type:"note"},(0,a.kt)("p",{parentName:"admonition"},"\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u901a\u8fc7 ",(0,a.kt)("inlineCode",{parentName:"p"},"Visual Studio 2022 Preview")," \u521b\u5efa\u7684\u9879\u76ee\u4f1a\u81ea\u52a8\u914d\u7f6e\u4e86\u542f\u52a8\u9875\uff0c\u5982\u679c\u4f7f\u7528 ",(0,a.kt)("inlineCode",{parentName:"p"},"F5")," \u8fd0\u884c\uff0c\u53ef\u80fd\u4e0d\u4f1a\u81ea\u52a8\u6253\u5f00\u9996\u9875\uff0c\u8fd9\u65f6\u5019\u6211\u4eec\u53ea\u9700\u8981\u914d\u7f6e ",(0,a.kt)("inlineCode",{parentName:"p"},"launchSettings.json")," \u7684 ",(0,a.kt)("inlineCode",{parentName:"p"},"launchUrl")," \u5373\u53ef\uff1a"),(0,a.kt)("img",{src:(0,o.Z)("img/rmn6.png")})),(0,a.kt)("h2",{id:"25-webapplication-\u8bf4\u660e-"},"2.5 ",(0,a.kt)("inlineCode",{parentName:"h2"},"WebApplication")," \u8bf4\u660e \ud83c\udf83"),(0,a.kt)("p",null,(0,a.kt)("inlineCode",{parentName:"p"},".NET6")," \u7248\u672c\u65b0\u589e\u4e86 ",(0,a.kt)("inlineCode",{parentName:"p"},"WebApplication")," \u5bf9\u8c61\uff0c\u5982\u679c\u6211\u4eec\u9700\u8981\u6ce8\u518c\u670d\u52a1\uff0c\u53ea\u9700\u8981\u901a\u8fc7 ",(0,a.kt)("inlineCode",{parentName:"p"},"builder.Services.AddXXX()")," \u5373\u53ef\u3002\u5982\uff1a"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs",metastring:"showLineNumbers {4}",showLineNumbers:!0,"":!0,"{4}":!0},"var builder = WebApplication.CreateBuilder(args).Inject();\n\nbuilder.Services.AddControllers().AddInject();\nbuilder.Services.AddRemoteRequest();\n")))}k.isMDXComponent=!0}}]);
\ No newline at end of file
diff --git a/handbook/build/assets/js/14cdac51.0088153b.js b/handbook/build/assets/js/14cdac51.0088153b.js
new file mode 100644
index 00000000000..de87f1b90df
--- /dev/null
+++ b/handbook/build/assets/js/14cdac51.0088153b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkfurion=self.webpackChunkfurion||[]).push([[4474],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return C}});var o=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;tEntityBase
\u793a\u8303\uff1a",id:"9323-entitybase-\u793a\u8303",level:3},{value:"9.3.2.4 Entity
\u793a\u8303\uff1a",id:"9324-entity-\u793a\u8303",level:3},{value:"9.3.2.5 EntityNotKey
\u793a\u8303\uff1a",id:"9325-entitynotkey-\u793a\u8303",level:3},{value:"9.3.3 \u81ea\u5b9a\u4e49\u516c\u5171\u5b9e\u4f53",id:"933-\u81ea\u5b9a\u4e49\u516c\u5171\u5b9e\u4f53",level:2},{value:"9.3.4 \u6570\u636e\u5e93\u5b9e\u4f53\u914d\u7f6e",id:"934-\u6570\u636e\u5e93\u5b9e\u4f53\u914d\u7f6e",level:2},{value:"9.3.4.1 \u5728\u6570\u636e\u5e93\u5b9e\u4f53\u4e2d\u914d\u7f6e",id:"9341-\u5728\u6570\u636e\u5e93\u5b9e\u4f53\u4e2d\u914d\u7f6e",level:3},{value:"9.3.4.2 \u5728\u4efb\u4f55\u5b9e\u4f8b\u7c7b\u4e2d\u914d\u7f6e",id:"9342-\u5728\u4efb\u4f55\u5b9e\u4f8b\u7c7b\u4e2d\u914d\u7f6e",level:3},{value:"9.3.5 \u6570\u636e\u5e93\u5b9e\u4f53\u914d\u7f6e\u8bf4\u660e",id:"935-\u6570\u636e\u5e93\u5b9e\u4f53\u914d\u7f6e\u8bf4\u660e",level:2},{value:"9.3.6 \u914d\u7f6e\u5217\u540d\u53ca\u5217\u7c7b\u578b",id:"936-\u914d\u7f6e\u5217\u540d\u53ca\u5217\u7c7b\u578b",level:2},{value:"9.3.7 \u914d\u7f6e\u6570\u636e\u5e93\u8868\u540d\u548c Schema
",id:"937-\u914d\u7f6e\u6570\u636e\u5e93\u8868\u540d\u548c-schema",level:2},{value:"9.3.8 \u53cd\u9988\u4e0e\u5efa\u8bae",id:"938-\u53cd\u9988\u4e0e\u5efa\u8bae",level:2}],u={toc:m};function C(e){var t=e.components,n=(0,a.Z)(e,i);return(0,r.kt)("wrapper",(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("admonition",{title:"\u7279\u522b\u63d0\u9192",type:"important"},(0,r.kt)("p",{parentName:"admonition"},"\u4e00\u65e6\u5b9a\u4e49\u4e86\u5b9e\u4f53\u6216\u6539\u53d8\u4e86\u5b9e\u4f53\u7ed3\u6784\u6216\u5b9e\u4f53\u914d\u7f6e\uff0c\u9700\u8981\u91cd\u65b0\u6267\u884c ",(0,r.kt)("inlineCode",{parentName:"p"},"Add-Migration")," \u548c ",(0,r.kt)("inlineCode",{parentName:"p"},"Update-Database")," \u547d\u4ee4\u3002")),(0,r.kt)("h2",{id:"931-\u6570\u636e\u5e93\u5b9e\u4f53"},"9.3.1 \u6570\u636e\u5e93\u5b9e\u4f53"),(0,r.kt)("p",null,"\u5728\u9762\u5411\u5bf9\u8c61\u5f00\u53d1\u601d\u60f3\u4e2d\uff0c\u6700\u91cd\u8981\u5c24\u4e3a",(0,r.kt)("strong",{parentName:"p"},"\u5bf9\u8c61"),"\u4e8c\u5b57\uff0c\u5728 .NET \u5f00\u53d1\u8fc7\u53bb\uff0c\u64cd\u4f5c\u6570\u636e\u5e93\u5f80\u5f80\u91c7\u7528 ",(0,r.kt)("inlineCode",{parentName:"p"},"DataTable")," \u548c ",(0,r.kt)("inlineCode",{parentName:"p"},"DataSet")," \u6765\u63a5\u6536\u6570\u636e\u5e93\u8fd4\u56de\u7ed3\u679c\u96c6\uff0c\u800c\u64cd\u4f5c\u6570\u636e\u5e93\u4e5f\u79bb\u4e0d\u5f00\u624b\u5199 ",(0,r.kt)("inlineCode",{parentName:"p"},"sql")," \u8bed\u53e5\u3002"),(0,r.kt)("p",null,"\u5728\u8fc7\u53bb\u9762\u5411\u8fc7\u7a0b\u548c\u5e94\u7528\u4e0d\u53d1\u8fbe\u7684\u65f6\u4ee3\uff0c\u8fd9\u4e9b\u64cd\u4f5c\u786e\u5b9e\u597d\u4f7f\u3002\u7136\u540e\u968f\u7740\u4e2d\u56fd\u4e92\u8054\u7f51\u7f51\u6c11\u7684\u6fc0\u589e\uff0c\u7535\u5b50\u5316\u65f6\u4ee3\u7684\u5230\u6765\uff0c\u5404\u884c\u5404\u4e1a\u5bf9\u5e94\u7528\u9700\u6c42\u4e5f\u8fbe\u5230\u4e86\u524d\u6240\u672a\u6709\u7684\u91cf\u7ea7\u3002"),(0,r.kt)("p",null,"\u6240\u4ee5\uff0c\u5728\u8fc7\u53bb\u624b\u5199 ",(0,r.kt)("inlineCode",{parentName:"p"},"sql")," \u7684\u65f6\u4ee3\u5404\u79cd\u95ee\u9898\u663e\u9732\u65e0\u7591\uff1a"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u7a0b\u5e8f\u5458\u80fd\u529b\u53c2\u5dee\u4e0d\u9f50\uff0c\u5199\u51fa\u7684 ",(0,r.kt)("inlineCode",{parentName:"li"},"sql")," \u6027\u80fd\u81ea\u7136\u4e5f\u5929\u5dee\u5730\u522b"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"sql")," \u5c5e\u4e8e\u5b57\u7b26\u4e32\u786c\u7f16\u7a0b\uff0c\u540e\u671f\u7ef4\u62a4\u96be\u4e0a\u52a0\u96be"),(0,r.kt)("li",{parentName:"ul"},"\u8bb8\u591a\u5355\u8868\u751a\u81f3\u591a\u8868\u7ed3\u6784\u4e00\u81f4\uff0c\u51fa\u73b0\u5927\u91cf\u91cd\u590d ",(0,r.kt)("inlineCode",{parentName:"li"},"sql")," \u4ee3\u7801"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"sql")," \u672c\u8eab\u5728\u4e0d\u540c\u7684\u6570\u636e\u5e93\u63d0\u4f9b\u5668\u4e2d\u5199\u6cd5\u6709\u5dee\uff0c\u540e\u7eed\u8fc1\u79fb\u5934\u75db\u4e0d\u5df2")),(0,r.kt)("p",null,"\u5f53\u7136\uff0c",(0,r.kt)("inlineCode",{parentName:"p"},"sql")," \u662f\u65f6\u4ee3\u7684\u4ea7\u7269\uff0c\u6211\u4eec\u4e5f\u79bb\u4e0d\u5f00 ",(0,r.kt)("inlineCode",{parentName:"p"},"sql"),"\uff0c\u4f46\u5bf9\u4e8e\u5927\u591a\u6570\u7a0b\u5e8f\u5458\u548c\u9879\u76ee\u6765\u8bf4\uff0c",(0,r.kt)("inlineCode",{parentName:"p"},"sql")," \u672a\u5fc5\u80fd\u591f\u5e26\u7ed9\u4ed6\u4eec\u591a\u5927\u7684\u6548\u76ca\u3002"),(0,r.kt)("p",null,"\u6240\u4ee5\uff0c",(0,r.kt)("inlineCode",{parentName:"p"},"ORM")," \u5c31\u8bde\u751f\u4e86\uff0c\u6240\u8c13\u7684 ",(0,r.kt)("inlineCode",{parentName:"p"},"ORM")," \u5c31\u662f\u5bf9\u8c61\u5173\u7cfb\u6620\u5c04\uff0c\u82f1\u6587\uff1a",(0,r.kt)("inlineCode",{parentName:"p"},"Object Relational Mapping"),"\uff0c\u7b80\u5355\u70b9\u8bf4\uff0c",(0,r.kt)("inlineCode",{parentName:"p"},"ORM")," \u6839\u636e\u7279\u6709\u7684 ",(0,r.kt)("inlineCode",{parentName:"p"},"POCO \u8d2b\u8840\u6a21\u578b")," \u89c4\u5219\u751f\u6210 ",(0,r.kt)("inlineCode",{parentName:"p"},"sql")," \u8bed\u53e5\u3002\u5927\u5927\u907f\u514d\u4e86\u91cd\u590d ",(0,r.kt)("inlineCode",{parentName:"p"},"sql")," \u548c ",(0,r.kt)("inlineCode",{parentName:"p"},"sql")," \u80fd\u529b\u53c2\u5dee\u4e0d\u9f50\u7b49\u95ee\u9898\u3002\uff08\u5f53\u7136 ",(0,r.kt)("inlineCode",{parentName:"p"},"ORM")," \u4f5c\u8005 ",(0,r.kt)("inlineCode",{parentName:"p"},"sql")," \u80fd\u529b\u4e5f\u4f1a\u5f71\u54cd\u6700\u7ec8\u6027\u80fd\uff09"),(0,r.kt)("p",null,"\u4e0a\u9762\u6240\u8bf4\u7684 ",(0,r.kt)("inlineCode",{parentName:"p"},"POCO")," \u8d2b\u8840\u6a21\u578b\u6b63\u662f\u6211\u4eec\u672c\u7ae0\u8282\u7684 ",(0,r.kt)("strong",{parentName:"p"},"\u6570\u636e\u5e93\u5b9e\u4f53"),"\u3002"),(0,r.kt)("p",null,"\u7b80\u5355\u6765\u8bf4\uff0c\u6570\u636e\u5e93\u5b9e\u4f53\u5c31\u662f\u6570\u636e\u5e93\u8868\u7684\u7c7b\u8868\u73b0\uff0c\u901a\u8fc7\u4e00\u5b9a\u7684\u89c4\u5219\u4f7f\u8fd9\u4e2a\u7c7b\u80fd\u591f\u4e00\u4e00\u5bf9\u5e94\u8868\u7ed3\u6784\u3002\u901a\u5e38\u8fd9\u6837\u7684\u7c7b\u4e5f\u79f0\u4e3a\uff1a",(0,r.kt)("inlineCode",{parentName:"p"},"POCO")," \u8d2b\u8840\u6a21\u578b\uff0c\u4e5f\u5c31\u662f\u53ea\u6709\u5b9a\u4e49\uff0c\u6ca1\u6709\u884c\u4e3a\u3002"),(0,r.kt)("h2",{id:"932-\u5982\u4f55\u5b9a\u4e49\u5b9e\u4f53"},"9.3.2 \u5982\u4f55\u5b9a\u4e49\u5b9e\u4f53"),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"Furion")," \u6846\u67b6\u63d0\u4f9b\u591a\u79cd\u5b9a\u4e49\u5b9e\u4f53\u7684\u63a5\u53e3\u4f9d\u8d56\uff1a"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"IEntity"),"\uff1a\u5b9e\u4f53\u57fa\u63a5\u53e3\uff0c\u662f\u6240\u6709\u5b9e\u4f53\u7684\u57fa\u63a5\u53e3"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"IEntityNotKey"),"\uff1a\u65e0\u952e\u5b9e\u4f53\u63a5\u53e3\uff0c\u4e5f\u5c31\u662f\u89c6\u56fe\u3001\u5b58\u50a8\u8fc7\u7a0b\u3001\u51fd\u6570\u4f9d\u8d56\u63a5\u53e3"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"EntityBase"),"\uff1a\u5b9e\u4f53\u57fa\u62bd\u8c61\u7c7b\uff0c\u5185\u7f6e\u4e86 ",(0,r.kt)("inlineCode",{parentName:"li"},"Id"),"\uff0c",(0,r.kt)("inlineCode",{parentName:"li"},"TenantId")," \u5b57\u6bb5"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"Entity"),"\uff1a\u5b9e\u4f53\u901a\u7528\u62bd\u8c61\u7c7b\uff0c\u7ee7\u627f\u81ea ",(0,r.kt)("inlineCode",{parentName:"li"},"EntityBase"),"\uff0c\u540c\u65f6\u5185\u7f6e ",(0,r.kt)("inlineCode",{parentName:"li"},"CreatedTime"),"\uff0c",(0,r.kt)("inlineCode",{parentName:"li"},"UpdatedTime")," \u5b57\u6bb5"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"EntityNotKey"),"\uff1a\u65e0\u952e\u5b9e\u4f53\u62bd\u8c61\u7c7b\uff0c\u89c6\u56fe\u3001\u5b58\u50a8\u8fc7\u7a0b\u3001\u51fd\u6570\u4f9d\u8d56\u62bd\u8c61\u7c7b")),(0,r.kt)("admonition",{title:"\u5b9e\u4f53\u5b9a\u4e49\u4f4d\u7f6e",type:"important"},(0,r.kt)("p",{parentName:"admonition"},(0,r.kt)("inlineCode",{parentName:"p"},"Furion")," \u6846\u67b6\u4e2d\u6709\u7ea6\u5b9a\uff0c\u5b9e\u4f53\u7edf\u4e00\u5b9a\u4e49\u5728 ",(0,r.kt)("inlineCode",{parentName:"p"},"Furion.Core")," \u5c42\u3002")),(0,r.kt)("h3",{id:"9321-\u5b9e\u4f53\u7ee7\u627f\u9009\u7528\u539f\u5219"},"9.3.2.1 \u5b9e\u4f53\u7ee7\u627f\u9009\u7528\u539f\u5219"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u5982\u679c\u4f60\u4e0d\u9700\u8981 ",(0,r.kt)("inlineCode",{parentName:"li"},"Furion")," \u4e3a\u5b9e\u4f53\u6dfb\u52a0\u4efb\u4f55\u5185\u7f6e\u7279\u6027\uff0c\u9009\u7528 ",(0,r.kt)("inlineCode",{parentName:"li"},"IEntity"),"\uff0c\u65e0\u952e\u5b9e\u4f53\u9009\u7528 ",(0,r.kt)("inlineCode",{parentName:"li"},"IEntityNotKey")),(0,r.kt)("li",{parentName:"ul"},"\u5982\u679c\u4f60\u53ea\u9700\u8981 ",(0,r.kt)("inlineCode",{parentName:"li"},"Id")," \u5c5e\u6027\uff0c\u9009\u7528 ",(0,r.kt)("inlineCode",{parentName:"li"},"EntityBase")),(0,r.kt)("li",{parentName:"ul"},"\u5982\u679c\u4f60\u9700\u8981 ",(0,r.kt)("inlineCode",{parentName:"li"},"Furion")," \u4e3a\u4f60\u81ea\u52a8\u6dfb\u52a0\u5e38\u7528\u5b57\u6bb5\uff0c\u5219\u9009\u7528 ",(0,r.kt)("inlineCode",{parentName:"li"},"Entity")),(0,r.kt)("li",{parentName:"ul"},"\u5982\u679c\u4f60\u9700\u8981\u89c6\u56fe\u3001\u5b58\u50a8\u8fc7\u7a0b\u3001\u51fd\u6570\u53ef\u4ee5\u901a\u8fc7 ",(0,r.kt)("inlineCode",{parentName:"li"},"DbSet")," \u64cd\u4f5c\uff0c\u5219\u7ee7\u627f ",(0,r.kt)("inlineCode",{parentName:"li"},"EntityNotKey"))),(0,r.kt)("h3",{id:"9322-ientity-\u793a\u8303"},"9.3.2.2 ",(0,r.kt)("inlineCode",{parentName:"h3"},"IEntity")," \u793a\u8303\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs",metastring:"showLineNumbers {1,5}",showLineNumbers:!0,"":!0,"{1,5}":!0},"using Furion.DatabaseAccessor;\n\nnamespace Furion.Core\n{\n public class User : IEntity\n {\n /// \u4e32\u884c
\u6267\u884c",id:"26123-\u4e32\u884c-\u6267\u884c",level:3},{value:"26.1.2.4 \u6253\u5370\u4f5c\u4e1a\u5b8c\u6574\u4fe1\u606f",id:"26124-\u6253\u5370\u4f5c\u4e1a\u5b8c\u6574\u4fe1\u606f",level:3},{value:"26.1.2.5 \u8fd0\u884c\u65f6\uff08\u52a8\u6001\uff09\u64cd\u4f5c\u4f5c\u4e1a",id:"26125-\u8fd0\u884c\u65f6\u52a8\u6001\u64cd\u4f5c\u4f5c\u4e1a",level:3},{value:"26.1.2.6 \u4f5c\u4e1a\u89e6\u53d1\u5668\u7279\u6027",id:"26126-\u4f5c\u4e1a\u89e6\u53d1\u5668\u7279\u6027",level:3},{value:"26.1.3 \u4f5c\u4e1a\u4fe1\u606f JobDetail
\u53ca\u6784\u5efa\u5668",id:"2613-\u4f5c\u4e1a\u4fe1\u606f-jobdetail-\u53ca\u6784\u5efa\u5668",level:2},{value:"26.1.3.1 \u5173\u4e8e\u4f5c\u4e1a\u4fe1\u606f",id:"26131-\u5173\u4e8e\u4f5c\u4e1a\u4fe1\u606f",level:3},{value:"26.1.3.2 \u5173\u4e8e\u4f5c\u4e1a\u4fe1\u606f\u6784\u5efa\u5668",id:"26132-\u5173\u4e8e\u4f5c\u4e1a\u4fe1\u606f\u6784\u5efa\u5668",level:3},{value:"26.1.3.3 \u8bbe\u7f6e\u4f5c\u4e1a\u4fe1\u606f\u6784\u5efa\u5668",id:"26133-\u8bbe\u7f6e\u4f5c\u4e1a\u4fe1\u606f\u6784\u5efa\u5668",level:3},{value:"26.1.3.4 \u4f5c\u4e1a\u4fe1\u606f/\u6784\u5efa\u5668\u989d\u5916\u6570\u636e",id:"26134-\u4f5c\u4e1a\u4fe1\u606f\u6784\u5efa\u5668\u989d\u5916\u6570\u636e",level:3},{value:"26.1.3.5 \u591a\u79cd\u683c\u5f0f\u5b57\u7b26\u4e32\u8f93\u51fa",id:"26135-\u591a\u79cd\u683c\u5f0f\u5b57\u7b26\u4e32\u8f93\u51fa",level:3},{value:"26.1.4 \u4f5c\u4e1a\u5904\u7406\u7a0b\u5e8f IJob
",id:"2614-\u4f5c\u4e1a\u5904\u7406\u7a0b\u5e8f-ijob",level:2},{value:"26.1.4.1 \u5982\u4f55\u5b9a\u4e49",id:"26141-\u5982\u4f55\u5b9a\u4e49",level:3},{value:"26.1.4.2 \u4f9d\u8d56\u6ce8\u5165",id:"26142-\u4f9d\u8d56\u6ce8\u5165",level:3},{value:"26.1.4.3 JobExecutingContext
\u4e0a\u4e0b\u6587",id:"26143-jobexecutingcontext-\u4e0a\u4e0b\u6587",level:3},{value:"26.1.4.4 \u4f5c\u4e1a\u88ab\u53d6\u6d88\u5904\u7406",id:"26144-\u4f5c\u4e1a\u88ab\u53d6\u6d88\u5904\u7406",level:3},{value:"26.1.5 \u4f5c\u4e1a\u89e6\u53d1\u5668 Trigger
\u53ca\u6784\u5efa\u5668",id:"2615-\u4f5c\u4e1a\u89e6\u53d1\u5668-trigger-\u53ca\u6784\u5efa\u5668",level:2},{value:"26.1.5.1 \u5173\u4e8e\u4f5c\u4e1a\u89e6\u53d1\u5668",id:"26151-\u5173\u4e8e\u4f5c\u4e1a\u89e6\u53d1\u5668",level:3},{value:"26.1.5.2 \u4f5c\u4e1a\u89e6\u53d1\u5668\u72b6\u6001",id:"26152-\u4f5c\u4e1a\u89e6\u53d1\u5668\u72b6\u6001",level:3},{value:"26.1.5.3 \u5173\u4e8e\u4f5c\u4e1a\u89e6\u53d1\u5668\u6784\u5efa\u5668",id:"26153-\u5173\u4e8e\u4f5c\u4e1a\u89e6\u53d1\u5668\u6784\u5efa\u5668",level:3},{value:"26.1.5.4 \u5185\u7f6e\u4f5c\u4e1a\u89e6\u53d1\u5668\u6784\u5efa\u5668",id:"26154-\u5185\u7f6e\u4f5c\u4e1a\u89e6\u53d1\u5668\u6784\u5efa\u5668",level:3},{value:"26.1.5.5 \u81ea\u5b9a\u4e49\u4f5c\u4e1a\u89e6\u53d1\u5668",id:"26155-\u81ea\u5b9a\u4e49\u4f5c\u4e1a\u89e6\u53d1\u5668",level:3},{value:"26.1.5.6 \u4f5c\u4e1a\u89e6\u53d1\u5668\u7279\u6027",id:"26156-\u4f5c\u4e1a\u89e6\u53d1\u5668\u7279\u6027",level:3},{value:"26.1.5.7 \u8bbe\u7f6e\u4f5c\u4e1a\u89e6\u53d1\u5668\u6784\u5efa\u5668",id:"26157-\u8bbe\u7f6e\u4f5c\u4e1a\u89e6\u53d1\u5668\u6784\u5efa\u5668",level:3},{value:"26.1.5.8 \u591a\u79cd\u683c\u5f0f\u5b57\u7b26\u4e32\u8f93\u51fa",id:"26158-\u591a\u79cd\u683c\u5f0f\u5b57\u7b26\u4e32\u8f93\u51fa",level:3},{value:"26.1.6 \u4f5c\u4e1a\u8ba1\u5212 Scheduler
\u53ca\u6784\u5efa\u5668",id:"2616-\u4f5c\u4e1a\u8ba1\u5212-scheduler-\u53ca\u6784\u5efa\u5668",level:2},{value:"26.1.6.1 \u5173\u4e8e\u4f5c\u4e1a\u8ba1\u5212",id:"26161-\u5173\u4e8e\u4f5c\u4e1a\u8ba1\u5212",level:3},{value:"26.1.6.2 \u5173\u4e8e\u4f5c\u4e1a\u8ba1\u5212\u6784\u5efa\u5668",id:"26162-\u5173\u4e8e\u4f5c\u4e1a\u8ba1\u5212\u6784\u5efa\u5668",level:3},{value:"26.1.6.3 \u8bbe\u7f6e\u4f5c\u4e1a\u8ba1\u5212\u6784\u5efa\u5668",id:"26163-\u8bbe\u7f6e\u4f5c\u4e1a\u8ba1\u5212\u6784\u5efa\u5668",level:3},{value:"26.1.6.4 \u591a\u79cd\u683c\u5f0f\u5b57\u7b26\u4e32\u8f93\u51fa",id:"26164-\u591a\u79cd\u683c\u5f0f\u5b57\u7b26\u4e32\u8f93\u51fa",level:3},{value:"26.1.7 \u4f5c\u4e1a\u8c03\u5ea6\u5668 ScheduleOptionsBuilder
\u914d\u7f6e\u9009\u9879",id:"2617-\u4f5c\u4e1a\u8c03\u5ea6\u5668-scheduleoptionsbuilder-\u914d\u7f6e\u9009\u9879",level:2},{value:"26.1.7.1 \u5173\u4e8e ScheduleOptionsBuilder
",id:"26171-\u5173\u4e8e-scheduleoptionsbuilder",level:3},{value:"26.1.7.2 ScheduleOptionsBuilder
\u5185\u7f6e\u5c5e\u6027\u548c\u65b9\u6cd5",id:"26172-scheduleoptionsbuilder-\u5185\u7f6e\u5c5e\u6027\u548c\u65b9\u6cd5",level:3},{value:"26.1.8 \u4f5c\u4e1a\u76d1\u89c6\u5668 IJobMonitor
",id:"2618-\u4f5c\u4e1a\u76d1\u89c6\u5668-ijobmonitor",level:2},{value:"26.1.8.1 \u5173\u4e8e\u53c2\u6570 JobExecutionContext
",id:"26181-\u5173\u4e8e\u53c2\u6570-jobexecutioncontext",level:3},{value:"26.1.9 \u4f5c\u4e1a\u6267\u884c\u5668 IJobExecutor
",id:"2619-\u4f5c\u4e1a\u6267\u884c\u5668-ijobexecutor",level:2},{value:"26.1.10 \u4f5c\u4e1a\u8ba1\u5212\u5de5\u5382 ISchedulerFactory
",id:"26110-\u4f5c\u4e1a\u8ba1\u5212\u5de5\u5382-ischedulerfactory",level:2},{value:"26.1.10.1 \u67e5\u627e\u6240\u6709\u4f5c\u4e1a",id:"261101-\u67e5\u627e\u6240\u6709\u4f5c\u4e1a",level:3},{value:"26.1.10.2 \u67e5\u627e\u4e0b\u4e00\u4e2a\u89e6\u53d1\u7684\u4f5c\u4e1a",id:"261102-\u67e5\u627e\u4e0b\u4e00\u4e2a\u89e6\u53d1\u7684\u4f5c\u4e1a",level:3},{value:"26.1.10.3 \u83b7\u53d6\u5355\u4e2a\u4f5c\u4e1a",id:"261103-\u83b7\u53d6\u5355\u4e2a\u4f5c\u4e1a",level:3},{value:"26.1.10.4 \u6dfb\u52a0\u4f5c\u4e1a",id:"261104-\u6dfb\u52a0\u4f5c\u4e1a",level:3},{value:"26.1.10.5 \u66f4\u65b0\u4f5c\u4e1a",id:"261105-\u66f4\u65b0\u4f5c\u4e1a",level:3},{value:"26.1.10.6 \u5220\u9664\u4f5c\u4e1a",id:"261106-\u5220\u9664\u4f5c\u4e1a",level:3},{value:"26.1.10.7 \u68c0\u67e5\u4f5c\u4e1a\u662f\u5426\u5b58\u5728",id:"261107-\u68c0\u67e5\u4f5c\u4e1a\u662f\u5426\u5b58\u5728",level:3},{value:"26.1.10.8 \u542f\u52a8\u6240\u6709\u4f5c\u4e1a",id:"261108-\u542f\u52a8\u6240\u6709\u4f5c\u4e1a",level:3},{value:"26.1.10.9 \u6682\u505c\u6240\u6709\u4f5c\u4e1a",id:"261109-\u6682\u505c\u6240\u6709\u4f5c\u4e1a",level:3},{value:"26.1.10.10 \u5220\u9664\u6240\u6709\u4f5c\u4e1a",id:"2611010-\u5220\u9664\u6240\u6709\u4f5c\u4e1a",level:3},{value:"26.1.10.11 \u5f3a\u5236\u5524\u9192\u4f5c\u4e1a\u8c03\u5ea6\u5668",id:"2611011-\u5f3a\u5236\u5524\u9192\u4f5c\u4e1a\u8c03\u5ea6\u5668",level:3},{value:"26.1.10.12 \u5f3a\u5236\u89e6\u53d1\u6240\u6709\u4f5c\u4e1a\u6301\u4e45\u5316",id:"2611012-\u5f3a\u5236\u89e6\u53d1\u6240\u6709\u4f5c\u4e1a\u6301\u4e45\u5316",level:3},{value:"26.1.11 \u4f5c\u4e1a\u8ba1\u5212 IScheduler
",id:"26111-\u4f5c\u4e1a\u8ba1\u5212-ischeduler",level:2},{value:"26.1.11.1 \u83b7\u53d6 IScheduler
\u5b9e\u4f8b",id:"261111-\u83b7\u53d6-ischeduler-\u5b9e\u4f8b",level:3},{value:"26.1.11.2 \u83b7\u53d6 SchedulerModel
\u5b9e\u4f8b",id:"261112-\u83b7\u53d6-schedulermodel-\u5b9e\u4f8b",level:3},{value:"26.1.11.3 \u83b7\u53d6 SchedulerBuilder
",id:"261113-\u83b7\u53d6-schedulerbuilder",level:3},{value:"26.1.11.4 \u83b7\u53d6 JobBuilder
",id:"261114-\u83b7\u53d6-jobbuilder",level:3},{value:"26.1.11.5 \u83b7\u53d6 TriggerBuilders
",id:"261115-\u83b7\u53d6-triggerbuilders",level:3},{value:"26.1.11.6 \u83b7\u53d6\u5355\u4e2a TriggerBuilder
",id:"261116-\u83b7\u53d6\u5355\u4e2a-triggerbuilder",level:3},{value:"26.1.11.7 \u542f\u52a8\u5f53\u524d\u4f5c\u4e1a",id:"261117-\u542f\u52a8\u5f53\u524d\u4f5c\u4e1a",level:3},{value:"26.1.11.8 \u6682\u505c\u5f53\u524d\u4f5c\u4e1a",id:"261118-\u6682\u505c\u5f53\u524d\u4f5c\u4e1a",level:3},{value:"26.1.11.9 \u542f\u52a8\u4f5c\u4e1a\u7279\u5b9a\u89e6\u53d1\u5668",id:"261119-\u542f\u52a8\u4f5c\u4e1a\u7279\u5b9a\u89e6\u53d1\u5668",level:3},{value:"26.1.11.10 \u6682\u505c\u4f5c\u4e1a\u7279\u5b9a\u89e6\u53d1\u5668",id:"2611110-\u6682\u505c\u4f5c\u4e1a\u7279\u5b9a\u89e6\u53d1\u5668",level:3},{value:"26.1.11.11 \u66f4\u65b0\u4f5c\u4e1a\u4fe1\u606f",id:"2611111-\u66f4\u65b0\u4f5c\u4e1a\u4fe1\u606f",level:3},{value:"26.1.11.12 \u83b7\u53d6\u4f5c\u4e1a\u5355\u4e2a\u89e6\u53d1\u5668",id:"2611112-\u83b7\u53d6\u4f5c\u4e1a\u5355\u4e2a\u89e6\u53d1\u5668",level:3},{value:"26.1.11.13 \u6dfb\u52a0\u4f5c\u4e1a\u5355\u4e2a\u89e6\u53d1\u5668",id:"2611113-\u6dfb\u52a0\u4f5c\u4e1a\u5355\u4e2a\u89e6\u53d1\u5668",level:3},{value:"26.1.11.14 \u5220\u9664\u4f5c\u4e1a\u5355\u4e2a\u89e6\u53d1\u5668",id:"2611114-\u5220\u9664\u4f5c\u4e1a\u5355\u4e2a\u89e6\u53d1\u5668",level:3},{value:"26.1.11.15 \u5224\u65ad\u4f5c\u4e1a\u662f\u5426\u5305\u542b\u7279\u5b9a\u89e6\u53d1\u5668",id:"2611115-\u5224\u65ad\u4f5c\u4e1a\u662f\u5426\u5305\u542b\u7279\u5b9a\u89e6\u53d1\u5668",level:3},{value:"26.1.11.16 \u5220\u9664\u5f53\u524d\u4f5c\u4e1a",id:"2611116-\u5220\u9664\u5f53\u524d\u4f5c\u4e1a",level:3},{value:"26.1.11.17 \u5f3a\u5236\u89e6\u53d1\u6240\u6709\u4f5c\u4e1a\u6301\u4e45\u5316",id:"2611117-\u5f3a\u5236\u89e6\u53d1\u6240\u6709\u4f5c\u4e1a\u6301\u4e45\u5316",level:3},{value:"26.1.11.18 \u8f93\u51fa JSON
\u5b57\u7b26\u4e32",id:"2611118-\u8f93\u51fa-json-\u5b57\u7b26\u4e32",level:3},{value:"26.1.12 \u4f5c\u4e1a\u6301\u4e45\u5316\u5668 IJobPersistence
",id:"26112-\u4f5c\u4e1a\u6301\u4e45\u5316\u5668-ijobpersistence",level:2},{value:"26.1.13 \u4f5c\u4e1a\u96c6\u7fa4\u63a7\u5236",id:"26113-\u4f5c\u4e1a\u96c6\u7fa4\u63a7\u5236",level:2},{value:"26.1.14 \u5982\u4f55\u90e8\u7f72",id:"26114-\u5982\u4f55\u90e8\u7f72",level:2},{value:"26.1.15 \u5e38\u89c1\u95ee\u9898",id:"26115-\u5e38\u89c1\u95ee\u9898",level:2},{value:"26.1.15 \u53cd\u9988\u4e0e\u5efa\u8bae",id:"26115-\u53cd\u9988\u4e0e\u5efa\u8bae",level:2}],m={toc:g};function c(e){var n=e.components,t=(0,o.Z)(e,l);return(0,a.kt)("wrapper",(0,r.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("admonition",{title:"\u5f53\u524d\u6587\u6863\u8fd8\u672a\u53d1\u5e03",type:"caution"},(0,a.kt)("p",{parentName:"admonition"},(0,a.kt)("strong",{parentName:"p"},"\u5f53\u524d\u6587\u6863\u8fd8\u5728\u7f16\u5199\u4e2d\uff0c\u5df2\u5b8c\u6210\u4e86 95%\uff0c\u5c06\u5728 2022 \u5e74 11 \u6708 23 \u65e5\u5b8c\u6210\u3002"))),(0,a.kt)("hr",null),(0,a.kt)("admonition",{title:"4.8.0 \u4ee5\u4e0b\u7248\u672c\u8bf4\u660e",type:"warning"},(0,a.kt)("p",{parentName:"admonition"},(0,a.kt)("strong",{parentName:"p"},"\u5728 ",(0,a.kt)("inlineCode",{parentName:"strong"},"Furion 4.8.0+")," \u7248\u672c\u91c7\u7528 ",(0,a.kt)("a",{parentName:"strong",href:"https://gitee.com/dotnetchina/Sundial"},"Sundial")," \u5b9a\u65f6\u4efb\u52a1\u66ff\u6362\u539f\u6709\u7684 ",(0,a.kt)("inlineCode",{parentName:"strong"},"TaskScheduler")),"\uff0c",(0,a.kt)("a",{parentName:"p",href:"/docs/job-old"},"\u67e5\u770b\u65e7\u6587\u6863"))),(0,a.kt)("admonition",{title:"\u7248\u672c\u8bf4\u660e",type:"important"},(0,a.kt)("p",{parentName:"admonition"},"\u4ee5\u4e0b\u5185\u5bb9\u4ec5\u9650 ",(0,a.kt)("inlineCode",{parentName:"p"},"Furion 4.8.0 +")," \u7248\u672c\u4f7f\u7528\u3002")),(0,a.kt)("h2",{id:"2611-\u5173\u4e8e\u8c03\u5ea6\u4f5c\u4e1a"},"26.1.1 \u5173\u4e8e\u8c03\u5ea6\u4f5c\u4e1a"),(0,a.kt)("p",null,"\u8c03\u5ea6\u4f5c\u4e1a\u53c8\u79f0\u5b9a\u65f6\u4efb\u52a1\uff0c\u987e\u540d\u601d\u4e49\uff0c\u5b9a\u65f6\u4efb\u52a1\u5c31\u662f\u5728\u7279\u5b9a\u7684\u65f6\u95f4\u6216\u7b26\u5408\u67d0\u79cd\u65f6\u95f4\u89c4\u5f8b\u81ea\u52a8\u89e6\u53d1\u5e76\u6267\u884c\u4efb\u52a1\u3002"),(0,a.kt)("img",{src:(0,i.Z)("img/scdr.png")}),(0,a.kt)("h2",{id:"2612-\u5feb\u901f\u5165\u95e8"},"26.1.2 \u5feb\u901f\u5165\u95e8"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u5b9a\u4e49\u4f5c\u4e1a\u5904\u7406\u7a0b\u5e8f ",(0,a.kt)("inlineCode",{parentName:"li"},"MyJob"),"\uff1a")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs",metastring:"showLineNumbers {1,9}",showLineNumbers:!0,"{1,9}":!0},'public class MyJob : IJob\n{\n private readonly ILogger