Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah saya Boleh Memanggil C# DLL daripada Aplikasi My Go?

Bagaimanakah saya Boleh Memanggil C# DLL daripada Aplikasi My Go?

Mary-Kate Olsen
Lepaskan: 2024-12-26 04:17:13
asal
876 orang telah melayarinya

How Can I Call C# DLLs from My Go Applications?

Menggunakan C# DLL dalam Aplikasi Go

Memanggil C# DLL daripada aplikasi Go memberikan cabaran yang unik. Walaupun DLL C/C boleh dimuatkan menggunakan syscall, himpunan C# mempunyai format yang berbeza.

Pustaka Go-Dotnet

Nasib baik, projek GitHub yang dipanggil go-dotnet ( https://github.com/matiasinsaurralde/go-dotnet) merapatkan jurang. Pustaka ini membenarkan aplikasi Go untuk memuatkan dan menggunakan himpunan .NET, termasuk C# DLL.

Contoh Penggunaan

Berikut ialah contoh cara memanggil C# DLL mudah yang menambah dua nombor:

package main

import (
    "fmt"

    "github.com/matiasinsaurralde/go-dotnet/dotnet"
)

func main() {
    // Load the C# DLL
    dllPath := "MathForGo.dll"
    assembly, err := dotnet.LoadAssembly(dllPath)
    if err != nil {
        panic(err)
    }

    // Get the "Add" method from the assembly
    method := assembly.Type("Namespace.ClassName").Method("Add")

    // Call the method with arguments
    result, err := method.Invoke(2, 3)
    if err != nil {
        panic(err)
    }

    // Convert the return value to an int
    numResult, err := result.Int()
    if err != nil {
        panic(err)
    }

    fmt.Printf("Result: %d\n", numResult)
}
Salin selepas log masuk

Dalam contoh ini, perpustakaan Go-Dotnet digunakan untuk muatkan C# DLL, dapatkan semula kaedah "Tambah", gunakannya dengan argumen dan tukar nilai pulangan kepada int.

Nota: Pendekatan ini berbeza daripada menggunakan syscall untuk memuatkan C /C DLL. Pustaka Go-Dotnet mengendalikan penukaran antara jenis Go dan jenis .NET, menjadikannya penyelesaian yang lebih mudah untuk kod panggilan yang ditulis dalam C#.

Atas ialah kandungan terperinci Bagaimanakah saya Boleh Memanggil C# DLL daripada Aplikasi My Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan