我已经定义了一个接口IActivity
,然后创建了两个实现此接口的类
public class EngagementActivity : IActivity...
和
public class MPEngagementActivity : IActivity...
然后我创建了一个将活动保存到数据库的方法,如下所示
public void SaveActivity (IActivity activity)
我遇到的问题是,当我将类型EngagementActivity
或MPEngagementActivity
的参数传递给此方法时,Visual Studio会抱怨不匹配的类型。
我这样做错了吗?
这是调用代码(我知道不完整......)
public ActionResult UpdateEngagementActivityRecord(EngagementActivityViewModel model)
{
if (ModelState.IsValid)
{
svc.SaveActivityRecord(model.Activity);
//Redirect to Index?
}
InitialiseEngagementActivityViewModel(model);
return View(model);
}
这是方法(不完整)
internal void SaveActivityRecord(IActivity model)
{
Activity record = new Activity();
if (model != null)
{
dbContext.Activities.Add(record);
Save();
}
}
错误信息是:
SaveActivityRecord(IActivity)的最佳重载方法匹配'有一些无效的论点
答案 0 :(得分:5)
检查 SaveActivity(IActivity活动)的声明,如果 IActivity 是来自命名空间的类,并且不是 Microsoft.VisualStudio.Uml.Activities .IAcitivity
答案 1 :(得分:1)
根据您提供的信息You are not doing anything wrong
。它必须是别的东西。最好的方法是重新启动Visual Studio:)
您的类Implements IActivity
接口然后它们可以作为IActivity接口传递。我们为实现polymorphism
做了这个基本的OOPS概念 - 我不知道多少次。
所以这是另一回事。
答案 2 :(得分:1)
我忘了实现界面的其中一个成员......呃!
感谢所有回复。