Domanda

Sto guardando gli esempi per escludere TryInvokeMember su DynamicObject per implementare metodo dinamico vincolante. La firma è la seguente

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

Ovviamente result viene utilizzato per passare il risultato al chiamante.

Poiché non v'è alcun sovraccarico per TryInvokeMember senza result fuori parametro, assumo questo metodo deve gestire metodi vuoti pure. In questo caso ci sono delle linee guida per ciò che result dovrebbe essere impostato?

L'implementazione di default su set DynamicObject result a null, e che sarebbe la mia scelta di default pure, ma non sono stato in grado di trovare alcuna menzione di questo negli esempi. Ci sono delle linee guida per questo? Ha anche importa quale sia il risultato è?

È stato utile?

Soluzione

Sì, basta usare nulla in questo caso.

Ci sono state alcune domande simili qui prima: come faccio esprimo una chiamata al metodo vuoto come il risultato di DynamicMetaObject.BindInvokeMember? Questo è di circa IDynamicMetaObjectProvider, ma DynamicObject è solo una delle sue implementazioni. Poco, DLR restituirà sempre qualcosa, non permette di tornare vuoto.

Vedrò cosa posso fare per documentazione MSDN. Posso aggiungere una nota su questo al DynamicObject.TryInvokeMember .

Altri suggerimenti

Credo che non importa, dal momento che il risultato sarà ignorato in ogni caso ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top