如何在.Net Core中的配置实例中添加扩展方法?

注意 这个问题不是关于如何实现扩展方法的。


在传入的IConfiguration实例中,我可以使用以下语法从我的appsettings.json访问连接字符串。


string azureDb = Configuration.GetConnectionString("azure");

我在另一部分中存储了一堆其他的应用程序参数。这些可以通过以下语法访问。


string server = Configuration.GetSection("Smtp")["server"];

我想设置一个扩展方法,以便可以按照与连接字符串相同的方式选择设置。因此,我建立了一个包含以下内容的课程。


public static class Extension

{

  public static string GetSmtpServer(this IConfiguration configuration)

  {

    return configuration.GetSection("Smtp")["server"];

  }

}

但是,这将不起作用,因为无法将扩展方法分配给接口。我应该如何进行?由于类Extension是静态的,因此我也感觉到一个问题。我注意到将东西注入静态构造函数有点麻烦。


是否可以像在连接字符串中那样添加我自己的自定义?如何?


守着星空守着你
浏览 205回答 2
2回答

慕后森

扩展方法对于this指向接口是完全有效的。但是,您需要确保实现接口的对象是实际实例,否则NullReferenceException将发生。

莫回无

我认为您做错了什么,然后先尝试使用[]语法。它应该像这样工作:return configuration["Smtp:server"];
打开App,查看更多内容
随时随地看视频慕课网APP