Questions tagged «wrapper»

4
如何减少用较大的对象模型包装第三方库的手动工作?
就像2012年这个问题 的作者和2013年这个问题的作者一样,我有一个第三方库,需要对其进行包装以正确测试我的应用程序。最高答案指出: 您始终希望将第三方类型和方法包装在接口后面。这可能是乏味且痛苦的。有时,您可以编写代码生成器或使用工具来执行此操作。 就我而言,该库用于对象模型,因此具有大量的类和方法,这些类和方法需要包装才能使该策略成功。除了“繁琐而痛苦”之外,这也成为测试的硬障碍。 自提出这个问题以来的四年中,我知道隔离框架已经走了很长一段路。我的问题是:现在是否存在一种更简单的方法来实现完全包装第三方库的效果?我如何摆脱这一过程中的痛苦并减少手工工作? 我的问题不是我最初链接的问题的重复,因为我的问题是减少手工包装的工作。这些其他问题仅询问包装是否有意义,而不是如何减少工作量。

4
如何包装服务,使其更简单
我们依赖于第三方服务,该服务公开了一个巨大的接口,我们只需要像3种方法。此外,界面经常更改... 我决定将接口包装在我们项目的一个类中,只公开我们需要的方法。 但是我不确定如何处理返回值...接口返回类型为的对象Storage。我们内部有一个类型StorageModel,它是a的内部表示形式Storage。 您将在映射器中返回什么:Storage或StorageModel?我们有一个DataService StorageService,它获得了注入的包装的依赖关系。 目前,我基本上是这样的: public class StorageService { private readonly IExternalStorageWrapper externalStorageWrapper; public StorageService(IExternalStorageWrapper externalStorageWrapper) { this.externalStorageWrapper = externalStorageWrapper; } public StorageModel GetStorage(int storageId) { return this.externalStorageWrapper.GetStorage(storageId).ConvertToStorageModel(); } } public class ExternalStorageWrapper : IExternalStorageWrapper { public Storage GetStorage(int storageId) { using(var ext = new ExternalStorage()) { return ext.GetStorage(storageId); …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.