मैं कुछ इस तरह है:रिटर्निंग अभिव्यक्ति <> का उपयोग कर विभिन्न वर्ग गुण
public Expression<Func<Message, bool>> FilterData()
{
switch (this.operatorEnum)
{
case FilterParameterOperatorEnum.EqualTo:
return message => !string.IsNullOrEmpty(message.Body) &&
message.Body
.Equals(this.value, StringComparison.InvariantCultureIgnoreCase);
case FilterParameterOperatorEnum.NotEqualTo:
return message => !string.IsNullOrEmpty(message.Body) &&
!message.Body
.Equals(this.value, StringComparison.InvariantCultureIgnoreCase);
case FilterParameterOperatorEnum.Contains:
return message =>
!string.IsNullOrEmpty(message.Body) &&
message.Body.IndexOf(this.value,
StringComparison.InvariantCultureIgnoreCase) >= 0;
case FilterParameterOperatorEnum.DoesNotContain:
return message =>
!string.IsNullOrEmpty(message.Body) &&
message.Body.IndexOf(this.value,
StringComparison.InvariantCultureIgnoreCase) == -1;
}
}
आप देख सकते हैं इस Message.Body
मैं अब पर किया जाता है क्या पर अन्य स्ट्रिंग गुणों पर एक ही बात करने के लिए Message
कक्षा और मैं उस कोड को डुप्लिकेट नहीं करना चाहता हूं।
वहाँ ऐसा करने के लिए संपत्ति किसी भी तरह में पास करके कोई तरीका है?
और क्या FilterData के शरीर कैसा दिखता है? – Jon
यह सही तरीके से करने के लिए, 'प्रोप' 'null' की जांच करने के बाद, आपको यह भी सुनिश्चित करना चाहिए कि 'prop.CanRead'' true' है। –