[C#] Tải thư viện Dll từ Web server vào ứng dụng Winform

[C#] Tải thư viện Dll từ Web server vào ứng dụng Winform
Đăng bởi: Thảo Meo - Lượt xem: 946 15:12:45, 21/10/2022C#   In bài viết

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. 

dynamic_dll_csharp

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!

DOWNLOAD SOURCE

Tags: assembly dynamic c#load assembly from webservertải thư viện từ website

THÔNG TIN TÁC GIẢ

BÀI VIẾT LIÊN QUAN

[C#] Tải thư viện Dll từ Web server vào ứng dụng Winform
Đăng bởi: Thảo Meo - Lượt xem: 946 15:12:45, 21/10/2022C#   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp
.