我正在使用.NET Core。

public class Program {     public static void Main(string[] args)     {         CreateHostBuilder(args).Build().Run();     }      public static IHostBuilder CreateHostBuilder(string[] args) =>         Host.CreateDefaultBuilder(args)             .ConfigureWebHostDefaults(webBuilder =>             {                 webBuilder.UseStartup<Startup>();             }); } 

CreateHostBuilder方法返回IHostBuilder接口,并正在调用该方法的Build方法。 那么有可能在该接口内实现代码还是它是任何设计模式?

===============>>#1 票数:0

实现接口IHostBuilder的CreateHostBuilder方法返回类型,并在该返回类型上调用Build方法。

  ask by rushang panchal translate from so

===============>>#2 票数:0

该类不是密封的,但是Build不是虚拟的,因此扩展它有点挑战。 但是,您始终可以包装对象并在包装器中实现接口,从而通过控制或覆盖或扩展所需的任何行为。

public class MyHostBuilder : IHostBuilder {     protected readonly IHostBuilder _inner;      public MyHostBuilder(IHostBuilder inner)     {         _inner = inner;     }      public IHost Build()     {         DoSomethingCustom();         return _inner.Build();          //Do something custom then pass through     }      public void ConfigureContainer<TContainerBuilder>(Action<HostBuilderContext,TContainerBuilder> action)     {         _inner.ConfigureContainer(action);  //Pass through without extending     } }         

  ask by rushang panchal translate from so

本文未有回复,本站智能推荐: