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