长春火车站到龙嘉机场高铁时刻表,有了域名怎样做网站,武功县住房和城乡建设局网站,保安公司网站如何做.NET CLI概述
命令说明dotnet add将包或引用添加到.NET项目中dotnet build构建.NET项目#xff0c;并编译为IL二进制文件dotnet clean清理.NET项目的构建输出dotnet help显示命令行帮助dotnet list罗列项目中的yinyongdotnet publish发布项目#xff0c;用于部署dotnet sln修….NET CLI概述
命令说明dotnet add将包或引用添加到.NET项目中dotnet build构建.NET项目并编译为IL二进制文件dotnet clean清理.NET项目的构建输出dotnet help显示命令行帮助dotnet list罗列项目中的yinyongdotnet publish发布项目用于部署dotnet sln修改解决方案文件
Service Createsc
用于服务管理的命令行工具可以用于添加新服务也可以用于查询、修改、启动、停止和删除现有服务。命令行中使用如下
sc.exe create ....WebAPI托管为Windows服务
需要修改WebAPI项目的program.cs文件,创建一个WebApplicationOptions对象并且将ContentRootPath属性设置为AppContext.BaseDirectory.
WebApplicationOptions opt new ()
{ContentRootPathAppContext.BaseDirectory,Args args
};
var builder WebApplication.CreateBuilder(opt);
builder.Host.UseWindowsService();项目发布后在Windows服务器上使用sc命令行工具创建Windows服务,服务的名字为WebAPIService
sc.exe create WebAPIService binpath发布的文件夹地址依赖注入的生命周期
Singleton
单例生命周期在整个程序运行周期内只会创建一次对象。
Scoped
作用域生命周期在每个Http请求期间创建一次对象。
Transient
瞬时生命周期每次接口的调用都会创建一个新的对象。
依赖注入
通过WebAppliactionBuilder对象的Services去注册服务
builder.Services.AddTransientIxxx,xxx();实现批量服务注册
创建一个ServiceCollection对象通过Assembly对象的Load扩展方法加载指定的程序集通过string.EndWith方法来匹配接口和方法使用AddSingleton方法注册服务调用BuildServiceProvider方法获取ServiceProvider依赖注入容器对象
var services new ServiceCollection();
var assembly Assembly.Load(想要指定的程序集名字);
ListType typeList assembly.GetTypes().where(t !t.IsInterface !t.IsAbstract t.Name.EndsWith(自己想要自动录入的名字后缀).ToList();
var dic new DictionaryType,Type[]();
foreach(var type in typeList)
{var interfaces type.GetInterfaces();dic.Add(type,interfaces );
}
if(dic.Keys.Count 0)
{foreach(var instanceType in dic.Keys){foreach(var interfaceType in dic[instanceType ]){services.AddSingleton(interfaceType ,instanceType );}}
}
services.BuildServiceProvider();