سلام
و در کلاس Startup کد زیر رو نوشتم
در متد ConfigureServices نحوه Register رو مشخص کردم (مپ کردن IMessagesService به MessagesService ) و در متد Configure انتظار دارم چون کلاس MessagesService و MessagesService2 کنار هم هستند این نگاشت به درستی انجام شود و خطا میده که نگاشت I MessagesService تعریف نشده است. در صورتی که هدف ما اسکن کل اسمبلی هست. ممنون میشم راهنمایی کنید.
من میخوستم از Scrutor استفاده کنم
کد سرویس من به صورت زیر است
namespace FirstProjectServices { public interface IMessagesService { string GetSiteName(); } public class MessagesService : IMessagesService { public string GetSiteName() { return "DNT"; } } } namespace FirstProjectServices { public interface IMessagesService2 { string GetSiteName(); } public class MessagesService2 : IMessagesService2 { public string GetSiteName() { return "DNT"; } } }
public class Startup { public void ConfigureServices(IServiceCollection services) { var collection = new ServiceCollection(); services.Scan(scan => scan // We start out with all types in the assembly of ITransientService .FromAssemblyOf<IMessagesService>() .AddClasses(classes => classes.AssignableTo<MessagesService>()) .AsImplementedInterfaces() .WithTransientLifetime() ); } public void Configure(IApplicationBuilder app, IHostingEnvironment env, IMessagesService2 _messagesService) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } // app.UseDefaultFiles(); // app.UseStaticFiles(); app.Run(async (context) => { string siteName = _messagesService.GetSiteName(); await context.Response.WriteAsync($"Site Name {siteName}"); }); } }