public sealed class PeAnalysisBuilder
{
internal IServiceCollection Services { get; }
internal PeAnalysisBuilder(IServiceCollection services)
{
Services = services;
}
public PeAnalysisBuilder AddAnalyzer<TAnalyzer>() where TAnalyzer : class, IPeAnalyzer
{
Services.AddSingleton<IPeAnalyzer, TAnalyzer>();
return this;
}
public PeAnalysisBuilder AddValidationRule<TRule>() where TRule : class, IValidationRule
{
Services.AddSingleton<IValidationRule, TRule>();
return this;
}
}