不能对 ContainsGenericParameters 为 true 的类型或方法执行后期绑定操作

本文关键字:执行 方法 操作 绑定 类型 ContainsGenericParameters true 不能 | 更新日期: 2023-09-27 18:33:32

我有一个适用于所有实体的扩展:

 public static class EntityBaseExtensions
    {
        public static T Clone<T>(this T item)
            where T : EntityBase
        {
            return item.EntityClone<T>();
        }
    }

 public virtual T EntityClone<T>() where T : EntityBase
        {
            return this.MemberwiseClone() as T;
        }

但是当我这样称呼它时:

 var details = user.Details.Clone();

我得到

不能对 的类型或方法执行后期绑定操作 包含通用参数为真。

有什么想法吗?

不能对 ContainsGenericParameters 为 true 的类型或方法执行后期绑定操作

解决方案有点奇怪:

public static T Clone<T>(this T item)
    where T : SimpleEntityBase
{
    return (T)item.EntityClone();
}

public virtual object EntityClone()
{
    return this.MemberwiseClone();
}