使用appsettings和IOptions接口的.NET标准库的推荐模式是什么?

时间:2018-07-05 18:43:24

标签: c# .net

我正在努力为正在制作的网络库提出正确的设计。该库是作为.NET标准项目编写的,它需要通过IOptions进行配置(期望有一些可执行文件来提供这些依赖项)

我正在阅读this answer,这是我一直遵循的指南。但是,我的困惑是某些应用程序应如何使用该库。

例如,我有一个名为Packet.cs的类,需要进行一些配置。

public class Packet {
    public Packet(int maxSize) {
         ...
    }
}

让我们假设maxSize是可以通过appsettings.js配置的。我写了另一个名为NetworkService.cs的类,它像这样IOptions

public class NetworkService {
    public NetworkService(IOptions<Settings> settings) {
         // save the settings
    }

    public Packet NewPacket() {
        return new Packet(settings.maxSize);
    }
}

现在,我现在是否要假设任何要使用我的库的内容都必须经过NetworkService,因为它是唯一具有设置的类?这是推荐的设计,因为我只有一个到整个库的接口,并且所有调用都必须经过它?

1 个答案:

答案 0 :(得分:0)

如果您要询问是否必须使用NetworkService创建Packet对象,那么答案是肯定的,它实际上是Factory模式的实现。