如何在 c# 中调用接口方法?



我正在研究.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方法。 那么是否可以在该接口内实现代码,或者它是任何设计模式?

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

该类不是密封的,但 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
}
}        

相关内容

  • 没有找到相关文章

最新更新