2017-10-13 49 views
1

我在我的代码中使用了一个类C,我向一个团队提供了一个服务API给我,他们提供的新函数的返回类型应该是C。我已经在我的代码中使用了我的C,并且更新了他们的金块包,我也有他们的C。两个C都严格相同(在类的定义中,它们显然不在相同的名称空间中)。已经有相同类的API存在了

我该怎么办?我应该尽可能在最低的水平上写一个明显的包装?最佳做法是什么?

+0

所以,你试图解决的问题是,你有两个类,结构上(可能功能上)是相同的,但在不同的命名空间?你想要在期望其他命名空间的类的方法中使用一个命名空间的类吗? – Corak

回答

0

您应该指定名称空间,如:namespace.your_class_name

+0

是的,这就是我正在做的,但它是可怕的。非常长的命名空间 –

+1

您可以使用块重新定义类名称。使用OtherC = OtherNamesapce.C。 – Bor1ss

0

还有什么可以做的?你的C和他们的C不是同一类,即使它们具有相同的结构。所以是的 - 必要时必须在两个方向之间映射它们。如果你的团队和团队提供的服务“足够接近”(比如在同一家公司工作) - 两个团队都可以使用普通类型的共享程序集,那么你将只有一个C。其他选项包括你(作为他们的包装的消费者)使用他们的C类型而不是你自己的(当然不总是可能的或可取的)。你也可以使用动态来平等对待这两种类型,但我当然不会推荐这样做。

相关问题