3

我有所有实体的扩展:

 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 的类型或方法执行后期绑定操作。

有任何想法吗?

4

1 回答 1

2

解决方案有点奇怪:

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

public virtual object EntityClone()
{
    return this.MemberwiseClone();
}
于 2013-10-02T07:39:31.883 回答