private SmartServiceDescriptor OnDependencyRegistering(SmartServiceDescriptor serviceDescriptor) { DependencySetupEventArgs args = new DependencySetupEventArgs(serviceDescriptor); ShellEvents.NotifyDependencyRegistering(_options, args); var newDesc = args.ActualDependency ?? args.OriginalDependency; return(Object.ReferenceEquals(newDesc, serviceDescriptor) ? serviceDescriptor : SmartServiceDescriptor.Create(newDesc, serviceDescriptor.Options)); }
private static void ShellEvents_DependencyRegistering(SchubertOptions option, DependencySetupEventArgs eventArgs) { //这里捞出要注册的服务。 if (TryGetRemoteService(eventArgs.ActualDependency, option, out RemoteServiceAttribute remoteAttribute)) { _serviceExports.Add(new SwiftyServiceDescriptor(eventArgs.ActualDependency.ServiceType, remoteAttribute.Version.IfNullOrWhiteSpace("1.0.0"))); } }