【发布时间】:2013-12-17 16:41:01
【问题描述】:
这将非常简单。
public class ModelMapNode { }
public class ModelMapNode<TModelMap> : ModelMapNode { }
public class ModelMapView { }
public class ModelMapView<TModelMap> : ModelMapView
where TModelMap : ModelMapNode
{
public ModelMapView()
{
this.RemovedProperties = new List<Expression<Func<TModelMap, object>>>();
}
public List<Expression<Func<TModelMap, object>>> RemovedProperties { get; private set; }
public void RemoveNode<TNodeModelMap>(Expression<Func<TModelMap, TNodeModelMap>> expression)
where TNodeModelMap : ModelMapNode
{
this.RemovedProperties.Add(expression);
}
}
理论上,可以在对象中分配任何泛型类型。但是按照我的方式,分配是无效的。
我无法在 Expression<Func<T, object>> 中分配 Expression<Func<T, T2>>。
有可能吗?
【问题讨论】:
-
这行不通。
Expression<>是类,不是接口,所以不支持协方差。您可以将 RemotedProperties 改为 List吗? -
@CoryNelson 在我的情况下,不可能使用 List
。
标签: c# .net expression expression-trees assign