解耦代码后,类库使用相同的代码怎么办?

时间:2018-08-10 02:26:36

标签: c# decoupling

我一直在稳定地将项目与主控制台应用程序和几个类库解耦。

这是一个基于OWIN的服务器,用于承载自定义Alexa Skill及其端点之间的通信。这利用了JSON通讯。

我的应用程序还与Microsoft Azure FaceAPI通信,后者还利用JSON通信。

最后,应用程序还使用JSON检索和保存基于Web的配置UI的设置。

这意味着有三个类库和主控制台程序,它们利用NewtonsoftJson序列化和反序列化JSON数据。

我创建了一个用于处理所有序列化的助手类。

但是,为了使类库保持解耦并在其他应用程序中可重用,这意味着我必须在每个ClassLibrary中显示相同的Helper类。

每个类库中都有代码似乎是可以的。

但是,当我在解决方案资源管理器中的所有ClassLibraries和主应用程序中看到该类时,它看起来像一堆重复的代码。

在解耦代码时,以这种方式重用类是否很典型?

也许JSON Helper应该是它自己的ClassLibrary?

类库已经依赖NewtonSoft了,因此创建另一个依赖关系似乎很愚蠢……困惑。

也许可以重复这样的代码吗?

编辑:我的助手类将包含以下方法:

  public string SerializeToString(object obj)
    {
        using (var streamWriter = new StringWriter())
        {
            using (var jsonWriter = new JsonTextWriter((streamWriter)))
            {
                serializer.Serialize(jsonWriter, obj);
            }
            return streamWriter.ToString();
        }
    }

然后可以将它们称为:

return new NewtonsoftJsonSerializer().SerializeToString(directiveResponse)

其中NewtonsoftJsonSerializer是帮助程序类名称。

我的AlexaApi,MircosoftFaceApi和配置类库中都使用了上面发布的方法。

0 个答案:

没有答案
相关问题