- [C#] Di chuyển và thay đổi kích thước Control Winform khi ứng dụng đang chạy
- [VB.NET] Chia sẻ source tạo sắp xếp đội hình bóng đá Line-ups đội bóng
- [C#] Hướng dẫn chỉnh sửa Text của label trực tiếp trên winform
- [C#] Hướng dẫn custom TextBox giống Ultraviewer trên Winform
- [C#] Show Modal Winform like Bootstrap
- [DATABASE] Thứ tự thực hiện mệnh đề truy vấn SELECT trong Sqlserver
- [C#] Hướng dẫn viết addin Excel Lấy hình ảnh từ URL internet vào Excel
- [DATABASE] TSQL view max length all column data trên table Sqlserver
- [DEVEXPRESS] Hướng dẫn sử dụng MailMerge kèm Hình ảnh trên Winform
- [DATABASE] Hướng dẫn truy vấn xem kích thước lưu trữ của từng bảng ghi Table trên sqlserver
- [C#] Hướng dẫn Fake Date Time sử dụng thư viện Harmony
- [DATABASE] Phân biệt câu lệnh DDL và DML trong sqlserver
- [C#] Hướng dẫn convert file mã HTML sang file Pdf trên winform
- [DEVEXPRESS] Tạo các loại mã vạch Barcode trực tiếp trên Devexpress Barcode API
- [DEVEXPRESS] Hướng dẫn custom Simple button thành Progressbar
- [DATABASE] Tách số và chữ từ chuỗi - hàm tối ưu hóa tách số và chữ trong Sqlserver
- [C#] Tìm kiếm gần đúng Full Text Search sử dụng thư viện Lucene.NET
- [C#] Chia sẻ tài liệu, sdk và source code máy chấm công dòng máy ZKTeco
- [C#] Memory Cache là gì, và sử dụng trong ứng dụng Winform
- [DATABASE] Khóa chính Primary Key trong Sqlserver
[C#] Giới thiệu thư viện Autofac Dependency Injection
Xin chào các bạn, bài viết hôm nay mình sẻ tiếp tục giới thiệu đến các bạn thư viện Autofac Dependency Injection trong lập trình C#, winform.
[C#] Using Autofac Dependency Injection
Trong ngôn ngữ lập trình hướng đối tượng, IOC hay DI pattern là một trong những khái niệm quan trọng.
Nó chống lại sự phụ thuộc lẫn nhau giữa các object. Nếu quản lý bằng cách khởi tạo đối tượng thông thường, sẽ khó khăn khi project của bạn ngày càng lớn.
Trong lập trình ứng dụng, nếu ứng dụng của bạn sử dụng nhiều loại cơ sở dữ liệu trong cùng một project như:
Sqlite để lưu cấu hình, Sqlserver, Mysql hay Orcale chẳng hạn.
Thì khi các bạn muốn thay đổi connection đến loại cơ sở dữ liệu nào thì chúng ta sẽ sử dụng Autofac để quản lý và thay đổi dễ dàng.
Đầu tiên các bạn import thư viện Autofac từ Nuget Console với lệnh sau:
PM>Install-Package Autofac -Version 6.1.0
Full source code Autofac C#:
using Autofac;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AutoFacDemo
{
class Program
{
static void Main(string[] args)
{
AppService.Connection.Connect();
AppService.Connection.Command("Insert");
Console.ReadLine();//Wait
}
public interface IConnection
{
void Connect();
void Command(string command);
}
public class MySqlConnection : IConnection
{
public void Command(string command)
{
Console.Write("Execute MySql command: {0}", command);
}
public void Connect()
{
Console.WriteLine("Connect to MySql Server...");
}
}
public class SqlConnection : IConnection
{
public void Command(string command)
{
Console.Write("Execute Sql command: {0}", command);
}
public void Connect()
{
Console.WriteLine("Connect to Sql Server...");
}
}
public static class AppService
{
static IContainer Container { get; set; }
static AppService()
{
ContainerBuilder builder = new ContainerBuilder();
builder.RegisterType<SqlConnection>().As<IConnection>();
// builder.RegisterType<MySqlConnection>().As<IConnection>(); //Change your instance you want to create
Container = builder.Build();
}
public static IConnection Connection => Container.Resolve<IConnection>();
}
}
}
Kết quả khi chạy ứng dụng:
Trên đây là cơ bản việc sử dụng thư viện Autofac, các bạn có thể tham khảo cụ thể ở tài liệu document tại trang chủ Autofac:
Thanks for watching!