所以我正在创建一个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或者什么都可以工作。我试着找一些关于如何在谷歌上做这个的例子,但我真的找不到任何东西,我真的不知道如何做到这一点。
如果您需要我澄清任何问题,请提前感谢您的帮助。
答案 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
}
}