Esempio n. 1
0
        private void ConfigureReferencedServices(IServiceCollection services, string provider)
        {
            _reporter.WriteVerbose(DesignStrings.FindingReferencedServices(_startupAssembly.GetName().Name));
            _reporter.WriteVerbose(DesignStrings.FindingReferencedServices(_assembly.GetName().Name));

            var references = _startupAssembly.GetCustomAttributes <DesignTimeServicesReferenceAttribute>()
                             .Concat(_assembly.GetCustomAttributes <DesignTimeServicesReferenceAttribute>())
                             .Distinct()
                             .ToList();

            if (references.Count == 0)
            {
                _reporter.WriteVerbose(DesignStrings.NoReferencedServices);

                return;
            }

            foreach (var reference in references)
            {
                if (reference.ForProvider != null &&
                    !string.Equals(reference.ForProvider, provider, StringComparison.OrdinalIgnoreCase))
                {
                    continue;
                }

                var designTimeServicesType = Type.GetType(reference.TypeName, throwOnError: true) !;

                _reporter.WriteVerbose(
                    DesignStrings.UsingReferencedServices(designTimeServicesType.Assembly.GetName().Name));

                ConfigureDesignTimeServices(designTimeServicesType, services);
            }
        }
        private void ConfigureReferencedServices(IServiceCollection services)
        {
            _reporter.WriteVerbose(DesignStrings.FindingReferencedServices(_startupAssembly.GetName().Name));

            var references = _startupAssembly.GetCustomAttributes <DesignTimeServicesReferenceAttribute>().ToList();

            if (references.Count == 0)
            {
                _reporter.WriteVerbose(DesignStrings.NoReferencedServices);

                return;
            }

            foreach (var reference in references)
            {
                var designTimeServicesType = Type.GetType(reference.TypeName, throwOnError: true);

                _reporter.WriteVerbose(
                    DesignStrings.UsingReferencedServices(designTimeServicesType.Assembly.GetName().Name));

                ConfigureDesignTimeServices(designTimeServicesType, services);
            }
        }