Rumah >pembangunan bahagian belakang >Golang >Boleh Pergi Aplikasi Secara Terus Menggunakan C# DLL, dan Jika Tidak, Apakah Penyelesaian yang Wujud?

Boleh Pergi Aplikasi Secara Terus Menggunakan C# DLL, dan Jika Tidak, Apakah Penyelesaian yang Wujud?

Barbara Streisand
Barbara Streisandasal
2024-12-05 09:14:16816semak imbas

Can Go Applications Directly Use C# DLLs, and If Not, What Workarounds Exist?

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!

Kenyataan:
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