Well, in my test it does not work:
Code:
[TestFixture]
public class Q10150013EvaluateExplicitlyImplementedProperty
{
[Test]
public void First_test()
{
var mm = (IMailMessage) new MailMessage();
mm.Subject = "abc vijay def";
var val = (bool)ExpressionEvaluator.GetValue(mm, "'IMailMessage.Subject'.Contains('vijay')");
Console.WriteLine(val);
Assert.True(val);
}
}
public interface IMailMessage
{
string Subject { get; set; }
}
public class MailMessage : IMailMessage
{
string IMailMessage.Subject { get; set; }
}
The expression evaluator considers 'IMailMessage.Subject' to be a plain string and does not evaluate anything against the root.
Maybe you ran your test against SPEL Java (lower capital g in your reply) and this is difference between Java and .net implementations?