Winform 如何使用Abp
2023-04-18 12:28:34 时间
Winform 如何使用Abp
安装 Volo.Abp.Core
Install-Package Volo.Abp.Core -Version 4.4.4
创建模块和应用
// 创建模块(具体用途暂时不管)
// 一个继承自 AbpModule 的类
public class AppModule : AbpModule
{
}
// 使用 AbpApplicationFactory 创建一个应用
var app = AbpApplicationFactory.Create<AppModule>();
// 初始化应用
app.Initialize();
使用应用中的 ServiceProvider
获取服务从而实现依赖注入
初始化app之后,就可以使用app的依赖注入功能了,下面是默认的 Program.cs
internal static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
这里演示直接在第一个窗体实例化就换成从容器中获取,下面代码更改了form实例化的方式。但是暂时是不能够获取到服务的,因为IoC容器里暂时没有 Form1
, 所以无法替我们完成实例化。
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
// 使用 AbpApplicationFactory 创建一个应用
var app = AbpApplicationFactory.Create<AppModule>();
// 初始化应用
app.Initialize();
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// var form = new Form1();
var form = app.ServiceProvider.GetService<Form1>();
Application.Run(form);
}
把需要实例化的服务注册到IoC容器的方式
- 在
app.Initialize();
执行之前给app.Services
添加。(这里有AddSingleton()
AddTransient()
AddScoped()
) - 在
AppModule
内重写ConfigureService
方法,给context.Services
添加。(这里有AddSingleton()
AddTransient()
AddScoped()
) - 在具体的实现类里面加上特性
ITransientDependency
。(这里有ITransientDependency
IScopedDependency
ISingletonDependency
)
// 这里使用最简单的方式,添加一个接口标识
public partial class Form1 : Form, ISingletonDependency
{
public Form1()
{
InitializeComponent();
}
相关文章
- WPF开发入门尝试
- 微软公告:ASP.NET曝漏洞 Win7等均中招
- WCF初接触实作之服务发布和使用
- WCF初次操作实践
- .NET程序员快来Visual Studio刷“成就”
- .NET垃圾回收机制知识点整理
- ASP.NET_正则表达式_匹配HTML中的一行或多行
- 利用WCF实现将服务器端的错误信息返回
- 怎样做一个快乐的ASP.NET程序员
- 为什么我们不要.NET程序员
- DDD落地,如何持久化聚合
- 迁移 dotnet 6 提示必须将目标平台设置为 Windows 平台
- C++|I/O|基于缓冲区的位级IO流
- 006: Django ajax请求
- 012:Django高级请求
- 开发者调查:C#在云应用中失去了地位 在游戏中依然大行其道
- 彻底理解 IO 多路复用实现机制
- 微软.NET 5.1迎来RC1版本 开发者已可上线尝鲜
- 速度和性能狂卷,.NET 7有多少人买单
- 风云再续:他抖任他抖,IO诊断在我手