Criar o tipo de delegado em C # com o parâmetro ref em tempo de execução
Preciso criar um tipo de delegado com umref
parâmetro em tempo de execuçã
Se eu conhecesse o (s) tipo (s) de parâmetro em tempo de compilação, poderia usar uma declaração explícita de tipo de delegado, por exemplo:
// S is some struct / value type, e.g. int or Guid
delegate void VoidDelSRef (ref S s);
Type td = typeof (VoidDelSRef);
Este tipotd
é usado para criar uma árvore de expressão C # 4, que é compilada em um delegad
Como o código na minha árvore de expressões modifica o parâmetros
, Eu preciso passars
por referência
Tenho que suportar qualquer tipoS
, então não posso usar uma declaração explícita do tipo delegado, porque só tenhoType ts = typeof (S)
e os seusref
tipoType tsr = ts.MakeByRefType ()
.
Eu tentei usarExpression.GetActionType (tsr)
, mas não permiteref
tipos.
Como eu construo um delegado comref
parâmetros em tempo de execução?