diff --git a/Pilz.Net/Api/ApiServer.cs b/Pilz.Net/Api/ApiServer.cs index 6a6e10b..fdd5455 100644 --- a/Pilz.Net/Api/ApiServer.cs +++ b/Pilz.Net/Api/ApiServer.cs @@ -160,6 +160,10 @@ public class ApiServer : IApiServer public virtual void RegisterHandler(T instance) where T : class { + // Initialize + if (instance is IApiHandlerInitializer initializer) + initializer.Initialize(this); + // Get all public instance methods var methods = typeof(T).GetMethods(BindingFlags.Instance | BindingFlags.Public); diff --git a/Pilz.Net/Api/IApiHandlerInitializer.cs b/Pilz.Net/Api/IApiHandlerInitializer.cs new file mode 100644 index 0000000..72aa951 --- /dev/null +++ b/Pilz.Net/Api/IApiHandlerInitializer.cs @@ -0,0 +1,6 @@ +namespace Pilz.Net.Api; + +public interface IApiHandlerInitializer +{ + public void Initialize(IApiServer server); +}