在WCF服务中获取泛型T对象的问题?

时间:2016-04-21 07:37:15

标签: c# wcf generics

我在Framework 4.5 WCF应用程序中遇到以下错误。

enter image description here

是否有任何丢失的文件。 我不能完全到达这里。

2 个答案:

答案 0 :(得分:0)

取决于你的班级的样子。根据您的屏幕截图,您应将其更改为此

public void Update<T>(T obj, params Expression<Func<T, object>>[] propertiesToUpdate)
{
}

如果课程类似

,那么您的版本才有效
public class YourClass<T>
{
   public void Update(T obj, ...
   {
   }
}

以下是basics

修改

要么你忘记发帖,要么你做错了。

如果您正在查看DbContext.Set<T>()的{​​{3}},那么您会看到有一个约束说where T : class。 (这是我在评论中已经提到过的。)这意味着,您的通用类型必须满足相同的要求。因此,您需要将方法更改为以下内容,因为它必须至少与DbContext.Set<T>()一样具体。

public void Update<T>(T obj, params Expression<Func<T, object>>[] propertiesToUpdate) where T : class
{
}

最后但同样重要的是,建议。处理泛型的基础。这非常重要。一旦理解了整个事物,它在某些情况下就会非常强大。

答案 1 :(得分:0)

你需要这样做:

public void Update<T>(Task obj, params Expression<Func<T, object>>[] propertiesToUpdate)