我有2个扩展方法将MongoDB文档转换为实体/对象.
public static ProductTemplate Convert(this Document document) { return null; } public static Product Convert(this Document document) { return null; }
这给出了一个预期的模糊调用错误,所以我想知道如何解决这个问题?
友好的问候,
Pickels
你可以使你的Convert
方法通用:
public static T ConvertTo(this Document doc) where T : SomeBaseClassOrInterface { return null; }
然后像这样使用它:
var document = new Document(); var temp = document.ConvertTo(); // returns a ProductTemplate var prod = document.ConvertTo (); // returns a Product
函数不能通过返回类型重载.您必须将您的功能重命名为:
ConvertToProductTemplate()和ConvertToProduct()
或者将它们转换为一个返回公共基类或接口的函数.(但是当调用者得到你的结果时,他们必须做一个演员)