Expression.Call и «Обнаружено неоднозначное совпадение»

Я пытаюсь написать выражение, которое будет вызывать 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, если для этого экземпляра есть перегрузки? Спасибо!

9
задан James Alexander 4 October 2010 в 21:16
поделиться