我正在使用帶有此示例的 .NET nanoFramework 作為基礎專案來制作一個 REST API,該 API 從 ESP32 讀取和提供我的傳感器資料。
using (WebServer server = new WebServer(80, HttpProtocol.Http, new Type[] { typeof(DHTController) }))
{
Debug.WriteLine("Iniciando server...");
var temp = server.Start();
var nis = NetworkInterface.GetAllNetworkInterfaces();
foreach (var ni in nis)
{
Debug.WriteLine("Seu endere?o de IP é: " ni.IPv4Address.ToString());
}
Thread.Sleep(Timeout.Infinite);
}
一切正常,直到我決定使用nanoCRL 的依賴注入解決方案。依賴注入似乎作業正常,但我注意到建構式 Controller 在完成來自郵遞員的請求時不會被呼叫。路由按預期回應,但建構式沒有被呼叫,并且依賴項沒有像我預期的那樣注入。
private readonly IDHTService service;
public DHTController(IDHTService service)
{
this.service = service;
}
[Route("dht")]
[Method("GET")]
public void Get(WebServerEventArgs e)
{
try
{
var result = service.GetTemperatura();
e.Context.Response.ContentType = "text/plain";
WebServer.OutPutStream(e.Context.Response, result.ToString());
}
catch (Exception)
{
WebServer.OutputHttpCode(e.Context.Response, HttpStatusCode.BadRequest);
}
}
當我從郵遞員撥打電話時,代碼會跳過建構式斷點并呼叫路由斷點。但是如果沒有注入依賴,路由也不能正常作業。
建構式斷點跳過
有人可以幫我理解代碼中發生了什么嗎?如果這是預期的,或者是一個錯誤。如果有其他解決方案,請幫助我使用 nanoFramework 的依賴注入。
uj5u.com熱心網友回復:
似乎您遇到了兩個不同的問題。從您上面的代碼中,可能是根本原因并不明顯......知道為 nanoFramework 提供官方 DI 庫的作業正在進行中。
在此之前,您最好在 DI 庫的 github 上提出問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/493842.html
