/// <summary> /// Build all dependant types into the messaging server /// </summary> /// <param name="type"></param> public void BuildRoutes([NotNull] Type type) { if (type == null) { throw new ArgumentNullException(nameof(type)); } if (type.IsInterface) { router.AddSource(type.FullName, InterfaceStack.OfInterface(type)); } AddSourcesAndRoute(type); }
void AddSourcesAndRoute([NotNull] Type type) { var interfaces = type.DirectlyImplementedInterfaces(); if (interfaces == null) { return; } foreach (var interfaceType in interfaces) { router.AddSource(interfaceType.FullName, InterfaceStack.OfInterface(interfaceType)); router.RouteSources(type.FullName, interfaceType.FullName); AddSourcesAndRoute(interfaceType); } }
public void Deactivate() { Active = false; InterfaceStack.PopInterface(); }
public void Activate() { Active = true; InterfaceStack.PushInterface(Interface); }