improve parameter detection

This commit is contained in:
2024-10-24 08:24:26 +02:00
parent d5f40cad2f
commit 48ae689a34
2 changed files with 4 additions and 235 deletions

View File

@@ -29,7 +29,7 @@ public class ApiServer(string apiUrl) : IApiServer
Log.Info("Start listening");
httpListener.Prefixes.Add(ApiUrl + "/");
httpListener.Start();
Listen();
Task.Run(Listen);
}
public virtual void Stop()
@@ -169,14 +169,14 @@ public class ApiServer(string apiUrl) : IApiServer
return new(ApiResult.Unauthorized(), null);
// Get required infos
Log.Debug("Find other infos");
var targetType = handler.Method.GetParameters().First().ParameterType;
Log.Debug("Identify message parameter type and serializer");
var targetType = handler.Method.GetParameters().FirstOrDefault(p => p.ParameterType.IsAssignableTo(typeof(ApiMessage)))?.ParameterType;
var serializer = GetSerializer(attribute.Serializer);
// Deserialize
Log.Debug("Deserialize message");
ApiMessage? message;
if (json != null)
if (json != null && targetType != null)
message = serializer.Deserialize(json, targetType);
else
message = null;