Как передать данные из класса третьего уровня в класс первого уровня?
Мне необходимо передать данные из `HTTPServer` в `WinForm`.
Я использую `HTTPServer` - ссылка(
https://github.com/jeske/SimpleHttpServer)
Я перенёс проект `SimpleHttpServer`
https://github.com/jeske/SimpleHttpServer/tree/mas...
в свой проект `WinForm`.
Я запускаю `HTTPServer` с помощью кода:
Код spoilerprivate void Form1_Load(object sender, EventArgs e)
{
StartHttpServer();
}
static void StartHttpServer()
{
try
{
var route_config = new List<Route>();
HttpServer httpServer = new HttpServer(8080, route_config);
Thread thread = new Thread(new ThreadStart(httpServer.Listen));
thread.Start();
}
catch (Exception ex)
{
string s = ex.Message;
string t = ex.StackTrace;
// throw;
MessageBox.Show(s + " \r\n "
+ t);
}
}
Если сервер получает POST запрос c JSON, то запрос приходит класс `HttpProcessor.cs` метод `HandleClient`.
Класс `HttpProcessor.cs` метод `HandleClient`
Кодspoilerpublic void HandleClient(TcpClient tcpClient)
{
Stream inputStream = GetInputStream(tcpClient);
Stream outputStream = GetOutputStream(tcpClient);
HttpRequest request = GetRequest(inputStream, outputStream);
#region Мои изменения.
// string s = request.
RequestContent?.Invoke(request);
#endregion
// направить и обработать запрос... (route and handle the request...)
HttpResponse response = RouteRequest(inputStream, outputStream, request);
// *
// Console.WriteLine("{0} {1}",response.StatusCode,request.Url);
// построить ответ по умолчанию для ошибок (build a default response for errors)
if (response.Content == null) {
if (response.StatusCode != "200") {
response.ContentAsUTF8 = string.Format("{0} {1} <p> {2}", response.StatusCode, request.Url, response.ReasonPhrase);
}
}
WriteResponse(outputStream, response);
outputStream.Flush();
outputStream.Close();
outputStream = null;
inputStream.Close();
inputStream = null;
}
Чтобы получить JSON из класс `HttpProcessor.cs` метод `HandleClient`.
я планирую использовать событие `public event Action RequestContent;`.
Кодspoilerpublic void HandleClient(TcpClient tcpClient)
{
// ....
RequestContent?.Invoke(request);
// ....
}
Вопрос.
1. Как сделать, чтобы при поступлении POST запроса с JSON, данные из класса `HttpProcessor.cs` автоматически передавались в класс `Form1` ?
2. Есть ли другие решения в замен использования `public event Action RequestContent;`?