Без минимального проверяемого примера мы не можем быть уверены, в чем проблема, но из вашего примера кода я собрал следующее:
interface ICustomType
{
int CustomProperty { get; set; }
}
class CustomType : ICustomType
{
public int CustomProperty { get; set; }
}
Теперь, когда я вызываю ваш пример кода, все работает как положено
ParameterExpression parameter = Expression.Parameter(typeof(CustomType), "x");
MemberExpression idMember = Expression.Property(parameter, "CustomProperty");
Кроме того, когда я меняю тип на ICustomType
, он все еще работает как положено.
ParameterExpression parameter = Expression.Parameter(typeof(ICustomType), "x");
MemberExpression idMember = Expression.Property(parameter, "CustomProperty");
Однако, если я удаляю объявление CustomProperty
из ICustomType
, я получаю следующую ошибку:
Свойство экземпляра 'CustomProperty' не определено для типа 'ICustomType'
Итак, это заставляет меня поверить, что ваш интерфейс не содержит объявления для CustomProperty
. Если вы добавите его в свой интерфейс, ваш код должен работать.