Я хочу, чтобы любой объект из класса ParameterExpression
.ParameterExpression to Object Casting with Reflection
Это пример кода (и псевдо, что я хочу сказать):
public void Execute(Expression<Action<TService>> operation)
{
try
{
var param = operation.Parameters[0]; //myparameter to cast
var obj = param as AnyCastObject; // I want to cast
DoSomething(obj); // and do something this object without losing any assigned propery.
operation.Compile().Invoke(OpenNewChannel);
}
finally
{
CloseChannel();
}
}
Edit:
Это мой метод тела:
Execute(x => x.UserAuthentication(requestDto));
Я хочу манипулировать requestDto.
Вы, кажется, не понимают, как работают выражения. 'param' не является« значением »параметра, это« параметр »в смысле« дескриптор параметра ». «литье» «дескриптора параметра» не имеет никакого смысла. Что вы можете сделать, так это создать новое дерево выражений, в котором значение «value» параметра передается на что-то другое, а затем что-то делается. – xanatos
Я знаю, что параметр не является ценностью. Я пишу этот пример для псевдо, что я хочу сказать. Но я не понимаю, что вы говорите. –
Итак, что вы хотите бросить? Вы хотите иметь «новое» 'ParameterExpression' для другого типа (' MyService' вместо 'TService')? Вы хотите изменить тип параметра операции из 'TService' в' MyService'? Или что? – xanatos