Я пытаюсь написать выражение, которое будет вызывать ToString для свойства и присвоить его значение локальной переменной. Однако вызов ToString для экземпляра объекта с перегрузкой ToString вызывает исключение «Неоднозначное совпадение найдено». Вот пример:
var result = Expression.Variable(typeof(string), "result");
var matchTypeParameter = Expression.Parameter(typeof(MatchType), "matchType");
var targetProperty = Expression.Property(leadParameter, target);
var exp = Expression.Block(
//Add the local current value variable
new[] { result },
//Get the target value
Expression.Assign(result, Expression.Call(targetProperty, typeof(string).GetMethod("ToString"), null))
);
Как я могу вызвать ToString, если экземпляр имеет перегрузки для него? Спасибо!