Pergunta

Eu estou olhando para os exemplos para substituir TryInvokeMember em DynamicObject para implementar método dinâmico vinculativo. A assinatura é a seguinte

public virtual bool TryInvokeMember(
    InvokeMemberBinder binder,
    Object[] args,
    out Object result
)

Obviamente result é usado para passar parte de trás resultado para o chamador.

Como não há sobrecarga para TryInvokeMember sem a result out parâmetro, presumo que este método deve manipular métodos vazios também. Nesse caso, existem diretrizes para o que result deve ser definido como?

A implementação padrão em conjuntos DynamicObject result como nulo, e que seria a minha escolha padrão bem, mas eu não tenho sido capaz de encontrar qualquer menção a isso nos exemplos. Há diretrizes para isso? Será que ainda importa o que o resultado é?

Foi útil?

Solução

Sim, basta usar nula neste caso.

Houve algumas perguntas semelhantes aqui antes: como posso expressar uma chamada de método vazio como o resultado de DynamicMetaObject.BindInvokeMember? Este é sobre IDynamicMetaObjectProvider, mas DynamicObject é apenas uma de suas implementações. Logo, DLR sempre retornará alguma coisa, ele não permite que retornar void.

Eu vou ver o que posso fazer em relação a documentação do MSDN. Posso acrescentar uma nota sobre isso com o DynamicObject.TryInvokeMember .

Outras dicas

Eu acho que isso não importa, já que o resultado será ignorado qualquer maneira ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top