我對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