我一直在稳定地将项目与主控制台应用程序和几个类库解耦。
这是一个基于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和配置类库中都使用了上面发布的方法。