Thanks Ryan, Mark.
Since nobody was using the existing contract I've made some updates. The new contract mirrors what we use for app discovery ([Assembly.Name].Startup).
Server factory discovery:
- If no server name is specified, scan the current directory for an assembly containing [Assembly.Name].ServerFactory.
- The server can be specified manually as:
-- The name of the assembly containing the class [Assembly.Name].ServerFactory
-- Or the full name of the assembly factory. e.g. Assembly.Name.MyNamedFactory. This lets you have multiple/alternate server factories in the same assembly.
The server factory methods Initialize and Create are unchanged, and Initialize remains optional. Also, the ServerFactory class can be static or non-static. If Initialize or Create are not static then the constructor will be called with DI support.
Sound useful?
Give the myget bits a try and let me know if you have questions.
Thanks,
~Chris