我对lambda表达式不是很熟悉。所以,我有以下表现:从lambda获取参数表达式
EnabledPropertySelector = l => l.FranchiseInfo.ExternalSystemType == ExternalSystemTypes.Master
和两个属性:
public string VisibilityPropertyName { get; set; }
public object VisibilityPropertyValue { get; set; }
我想从表达提取一些数据,以便在最后,我可以得到两个属性的值:
VisibilityPropertyName == 'FranchiseInfo.ExternalSystemType';
VisibilityPropertyValue == ExternalSystemTypes.Master;
VisibilityPropertyName
始终是一个字符串。这是财产的名称。 VisibilityPropertyValue
可以是任何类型。
编辑:
我有很多属性。其中一些依赖于其他属性。对于每一个属性我必须手动写名字和父属性的值:
{ VisibilityPropertyName = 'FranchiseInfo.ExternalSystemType', VisibilityPropertyValue = ExternalSystemTypes.Master, EnabledPropertySelector = l => l.FranchiseInfo.ExternalSystemType == ExternalSystemTypes.Master}
而不是写这一切我想只写了表达,并从它填充属性。
这是expresion声明:
Expression<Func<TEntity, bool?>> EnabledPropertySelector
什么是你想用第一条语句来完成?你不需要lambda表达式来访问FanchiseInfo的属性。 –
您不会从表达式中提取数据,而是评估表达式。正如Nick所问,告诉我们你想要完成什么,而不仅仅是这个具体表达。 – Moho
在某些时候,我将在泛型上下文中调用EnabledPropertySelector.Compile()(e)从func中获取值。我想在一些早些时候从表达式中填充这两个属性,这样我就可以节省一些额外的输入。 – Mdb