GenericArguments [0],'EntityGenericBase`1 [TModel]'违反了类型参数'TModel'

时间:2018-12-30 18:55:26

标签: c# winforms

有人可以帮助我解决此问题: 我使用c#Winforms作为伙伴创建了通用库“用户控件”:

public class EntityGenericBase<TModel> : UserControl
    where TModel : class, IEntityClass, new()
{}

并且我创建了另一个用户控件,该控件继承了上面的“ EntityGenericBase”:

public class DepartmentView : EntityGenericBase<Department>
{
    public DepartmentView():base()
    {
        InitializeComponent();
    }
}

但是不幸的是,当我尝试在设计模式下查看用户控件时,出现以下错误:

“ EntityGenericBase`1 [TModel]”上的GenericArguments [0],“部门”违反了类型参数“ TModel”的约束。

我仍然可以运行应用程序而没有任何问题。

备注:当我删除约束“ where子句”时,一切正常。

我使用“ Visual Studio Community 2017”

2 个答案:

答案 0 :(得分:1)

如错误消息所述

  

GenericArguments [0],“部门”,位于“ EntityGenericBase`1 [TModel]”上   违反了类型参数“ TModel”的约束。

您的模范部门违反了一个或多个约束

example

部门不是这些中的一个或多个

  1. 这不是课程
  2. 它没有实现IEntityClass接口
  3. 它没有无参数的构造函数

答案 1 :(得分:1)

这是一个已知问题,唯一的解决方法似乎是重新启动 VS Designer error: GenericArguments[0], 'X' on 'Y' violates the constraint of type parameter 'Z'