- [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#] Tải thư viện Dll từ Web server vào ứng dụng Winform
Xin chào các bạn, bài viết hôm nay mình sẽ tiếp tục hướng dẫn các bạn cách load thư viện động DLL từ Webserver, và nhúng vào ứng dụng của mình như: Winform, WPF...
[C#] Load Library DLL From WebServer
Nhiều lúc bạn muốn viết ra một thư viện của riêng mình, nhưng không muốn import vào project như bình thường.
Mà thay vào đó, bạn upload thư viện dll đó lên Webserver, và khi mở ứng dụng lên thì Ứng dụng sẽ load thư viện về.
Cách này, cũng nhằm bảo mật thư viện của bạn, tránh bị anh em nhòm ngó.
Ở bài này, mình sẽ tạo một thư viện đơn giản với tên: CaculatorLib.dll
bao gồm 4 phép tính đơn giản: Cộng, trừ, nhân, chia.
Và file Dll này khi build xong, mình sẽ upload lên server của mình.
VD: ở đường dẫn dưới đây
public const string LibCalcURL = "https://laptrinhvb.net/test/CaculatorLib.dll";
Source code các hàm trong Libraray calc c#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CaculatorLib
{
public class Caculator
{
public int PhepTong(int a, int b) {
return a + b;
}
public int PhepTru(int a, int b)
{
return a - b;
}
public int PhepTich(int a, int b)
{
return a * b;
}
public double PhepThuong(int a, int b)
{
return a / b;
}
}
}
Và dưới đây là source code các bạn gọi thư viện dll từ server vào ứng dụng:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Reflection;
using System.Security.Policy;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace LoadLibDllFromWebServer
{
public partial class Form1 : Form
{
public const string LibCalcURL = "https://laptrinhvb.net/test/CaculatorLib.dll";
public dynamic calcLib;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
using (var wc = new WebClient())
{
var assembly = Assembly.Load(wc.DownloadData(LibCalcURL));
var classType = assembly.GetType("CaculatorLib.Caculator"); // tên Namespace.TenClass ở thư viện
calcLib = Activator.CreateInstance(classType);
}
}
private void btnCong_Click(object sender, EventArgs e)
{
var a = Convert.ToInt32(txtSoA.Text);
var b = Convert.ToInt32(txtSoB.Text);
var result = calcLib.PhepTong(a, b);
txtKetQua.Text = result.ToString();
}
private void btnTru_Click(object sender, EventArgs e)
{
var a = Convert.ToInt32(txtSoA.Text);
var b = Convert.ToInt32(txtSoB.Text);
var result = calcLib.PhepTru(a, b);
txtKetQua.Text = result.ToString();
}
private void btnNhan_Click(object sender, EventArgs e)
{
var a = Convert.ToInt32(txtSoA.Text);
var b = Convert.ToInt32(txtSoB.Text);
var result = calcLib.PhepTich(a, b);
txtKetQua.Text = result.ToString();
}
private void btnChia_Click(object sender, EventArgs e)
{
var a = Convert.ToInt32(txtSoA.Text);
var b = Convert.ToInt32(txtSoB.Text);
var result = calcLib.PhepThuong(a, b);
txtKetQua.Text = result.ToString();
}
}
}
Thanks for watching!