厦门规划建设局网站,wordpress按钮插件,兰州网站制作cheng,兰州网站排名哪家公司好准备工作
Windows 10Visual Studio 2019(2017就有可以集中发布到publish目录的功能了吧)C#将方法封装(据说可以提高效率,就像是我们用的dll那种感觉新增专案作为我们API的辅助专案(作用类似dll#xff0c;此处#xff0c;你也可以在你自己的API专案里建文件夹#xff0c;但…准备工作
Windows 10Visual Studio 2019(2017就有可以集中发布到publish目录的功能了吧)C#将方法封装(据说可以提高效率,就像是我们用的dll那种感觉新增专案作为我们API的辅助专案(作用类似dll此处你也可以在你自己的API专案里建文件夹但这样据说没有效果我也不知道是不是真的只能麻烦点再新增专案啰)
在你创建一个空白的API专案后这个专案会自动继承ControllerBase类补第一个专案的图因为有时候自己见一个.cs的类不会自动继承所以就需要手动添加不过现在升级了可以直接建control。
在系统里直接建Controller类
新增专案
不想太麻烦的就自己新建文件夹自己调用就好就不用建这么多专案。
在新增专案前先迁移一下之前的项目。之前是D:\WEB_CODE\RMS\我在此再建了一层目录此时xml文件的路径也需要重新勾选。 给大家看下完整建好后的文件夹
新增IServices专案
新增Services专案
新增Model专案 版本冲突 专案引用
具体的引用要看你需要用到那个专案这是你自己设定的联系。 using Autofac;
using Autofac.Extensions.DependencyInjection;namespace RMS
{public class Startup{// 为ConfigureServices方法添加新的注入且将返回类型void改为 IServiceProvider // This method gets called by the runtime. Use this method to add services to the container.public IServiceProvider ConfigureServices(IServiceCollection services){ //使用Autofac實現IOCvar containerBuilder new ContainerBuilder();//模塊化注入containerBuilder.RegisterModuleHelpTool.AutofacModuleRegister();containerBuilder.Populate(services);var container containerBuilder.Build();return new AutofacServiceProvider(container);}}
}using Autofac;
using System.Linq;
using System.Reflection;namespace HelpTool
{public class AutofacModuleRegister : Autofac.Module{protected override void Load(ContainerBuilder builder){ //動態註入服務builder.RegisterAssemblyTypes(Assembly.Load(IServices), Assembly.Load(Services)).Where(t t.Name.EndsWith(Service))//注入cs文件以Service结尾的.AsImplementedInterfaces(); }}
}方法调用
https://localhost:44372/api/Talentpool/TestMethod?test111
会失败因为_iTalentpoolService是个null//需要 動態註入服務 会用到Autofac组件 》 Startup.cs里写
builder.RegisterAssemblyTypes(Assembly.Load(IServices), Assembly.Load(Services)).Where(t t.Name.EndsWith(Service)).AsImplementedInterfaces(); // 在类上这样写可以指定方法调用的格式好像是的吧
[Route(api/[controller]/[action])]
这样的话大概的框架就是这样了但效果是不是会快我就没实践过了还有之所以目录Services和Iservices是有用处的为了動態註入服務后面有时间就写。其实就是想为构造函数传递值会用到Autofac组件。