Rumah >pembangunan bahagian belakang >Golang >Boleh Pergi Aplikasi Secara Terus Menggunakan C# DLL, dan Jika Tidak, Apakah Penyelesaian yang Wujud?
Menggunakan C# DLL dalam Aplikasi Go: Bolehkah Ia Dilakukan?
Memanggil C# DLL daripada aplikasi Go telah menjadi topik perbincangan bagi sesetengah orang masa, dan walaupun ia bukan proses yang mudah seperti menggunakan C atau C DLL, ia boleh dilakukan dengan bantuan luaran perpustakaan.
Kemungkinan Semasa dalam Go
Pada masa ini, terdapat pilihan terhad untuk menggunakan terus C# DLL dalam Go. Pakej golang.org/x/sys/windows menyediakan beberapa sokongan untuk memanggil Windows DLL daripada Go, tetapi ia tidak meluas ke C# DLL.
Penyelesaian Alternatif
Syukurlah, projek di GitHub bernama go-dotnet bertujuan untuk merapatkan jurang antara Go dan .NET perhimpunan. Dengan menyepadukan perpustakaan interop berasaskan COM, go-dotnet membolehkan aplikasi Go memanggil kaedah C#.
Contoh
Untuk menunjukkan cara menggunakan go-dotnet, mari kita pertimbangkan DLL C# mudah yang menambah dua nombor:
public class Adder { public static int Add(int a, int b) { return a + b; } }
Dalam Go, kita boleh menggunakan go-dotnet untuk antara muka dengan DLL ini:
package main import ( "fmt" "github.com/matiasinsaurralde/go-dotnet/dotnet" ) func main() { assembly, err := dotnet.AsAssembly("MathForGo.dll") if err != nil { panic(err) } adderType, err := assembly.Type("MathForGo.Adder") if err != nil { panic(err) } addMethod, err := adderType.Method("Add") if err != nil { panic(err) } result, err := addMethod.Invoke(2, 3) if err != nil { panic(err) } fmt.Printf("%v\n", result) // Prints "5" }
Sila ambil perhatian bahawa persediaan tambahan mungkin diperlukan untuk go-dotnet berfungsi dengan baik, seperti melaraskan laluan sistem atau menggunakan versi Go yang menyokong interop COM.
Atas ialah kandungan terperinci Boleh Pergi Aplikasi Secara Terus Menggunakan C# DLL, dan Jika Tidak, Apakah Penyelesaian yang Wujud?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!