创建一个dll,但需要引用一个可变的函数/ void/代码

本文关键字:一个 函数 void 代码 dll 创建 引用 | 更新日期: 2023-09-27 18:17:03

所以我正在创建一个dll,它所做的是它基本上通过服务器验证用户名和密码,如果它错了,它会在输出框中写入失败,如果它是正确的,它会启动另一种形式或做任何使用dll的人想要做的事情。下面是代码:

using (StreamReader streamReader = new StreamReader(httpResponse.GetResponseStream()))
            {
                LaunchCode.Globals.output = "SUCCESS" + Environment.NewLine;
                //Success action 
                json = streamReader.ReadToEnd(); //---Can't get the nested JSON, read the entire response minus the 200 code.
            }

我有"//成功动作"的地方是代码会去任何用户想要的dll做(打开一个表单,打开一个消息框等),但这是一个dll用户没有访问代码。所以我想让dll引用一个void或任何可以工作的东西,以不同的形式。我试着在谷歌上寻找如何做到这一点的例子,但我找不到任何东西,我真的不知道如何做到这一点。

如果您需要我澄清任何事情,请提前询问并感谢您的帮助。

创建一个dll,但需要引用一个可变的函数/ void/代码

您需要使用委托。下面是一个使用特殊委托Action的示例代码。您可以使用内置委托,也可以自己创建委托。

public class Program
{
    public void Main(string[] args)
    {
        Foo foo = new Foo();
        foo.SomeMethod(ActionProvider.ShowMessageBox);
    }
}
public static class ActionProvider
{
    public static void ShowMessageBox()
    {
        //Write code for showing message box
        Console.WriteLine("Showing message box");
    }
}
// Assume this class to be in another dll
public class Foo
{
    public void SomeMethod(Action callback)
    {
        //Do something
        callback();
        //Do something else
    }
}