创建一个DLL但需要引用一个可更改的函数/ void / code

时间:2015-10-11 04:48:03

标签: c# dll

所以我正在创建一个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或者什么都可以工作。我试着找一些关于如何在谷歌上做这个的例子,但我真的找不到任何东西,我真的不知道如何做到这一点。

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

1 个答案:

答案 0 :(得分:0)

您需要使用代理人。以下是使用特殊委托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
    }
}