Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah saya Boleh Memanggil C# DLL daripada Aplikasi My Go?
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) }
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!