AIFunctionFactoryOptions.MarshalResult Eigenschap

Definitie

Hiermee haalt u een gemachtigde op die wordt gebruikt om de Object geretourneerde waarde InvokeAsync(AIFunctionArguments, CancellationToken)te bepalen.

public:
 property Func<System::Object ^, Type ^, System::Threading::CancellationToken, System::Threading::Tasks::ValueTask<System::Object ^>> ^ MarshalResult { Func<System::Object ^, Type ^, System::Threading::CancellationToken, System::Threading::Tasks::ValueTask<System::Object ^>> ^ get(); void set(Func<System::Object ^, Type ^, System::Threading::CancellationToken, System::Threading::Tasks::ValueTask<System::Object ^>> ^ value); };
public Func<object?,Type?,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask<object?>>? MarshalResult { get; set; }
member this.MarshalResult : Func<obj, Type, System.Threading.CancellationToken, System.Threading.Tasks.ValueTask<obj>> with get, set
Public Property MarshalResult As Func(Of Object, Type, CancellationToken, ValueTask(Of Object))

Waarde van eigenschap

Opmerkingen

Standaard wordt de retourwaarde van het aanroepen van de methode die in een AIFunction by AIFunctionFactory is verpakt, geserialiseerd door JSON, waarbij het resultaat JsonElement wordt geretourneerd door de InvokeAsync(AIFunctionArguments, CancellationToken) methode. Dit standaardgedrag is ideaal voor het algemene geval waarin het resultaat wordt doorgestuurd naar een AI-service. Als de beller echter meer controle nodig heeft over de marshaling van het resultaat, kan de MarshalResult eigenschap worden ingesteld op een gemachtigde die vervolgens volledige controle heeft over de marshaling van het resultaat. De gemachtigde wordt aangeroepen met de waarde die door de methode wordt geretourneerd en de retourwaarde wordt vervolgens geretourneerd vanuit de InvokeAsync(AIFunctionArguments, CancellationToken) methode.

Wanneer deze is ingesteld, wordt de gemachtigde aangeroepen, zelfs voor void-retourmethoden. In dat geval wordt deze aangeroepen met een null argument. null Standaard wordt de methode geretourneerd voor InvokeAsync(AIFunctionArguments, CancellationToken)AIFunction exemplaren die worden geproduceerd door AIFunctionFactory terugloopmethodenvoid.

Methoden die sterk zijn getypt om typen Task, Task<TResult>en ValueTaskValueTask<TResult> zijn speciaal getypeerd. Voor methoden die zijn getypt om te retourneren Task of ValueTask, MarshalResult worden aangeroepen met de null waarde nadat de geretourneerde taak is voltooid. Voor methoden die zijn getypt om te retourneren Task<TResult> of ValueTask<TResult>, wordt de gemachtigde aangeroepen met de resultaatwaarde van de taak nadat de taak is voltooid. Dit gedrag houdt synchrone en asynchrone methoden consistent.

Naast de geretourneerde waarde, die als eerste argument aan de gemachtigde wordt verstrekt, wordt de gemachtigde ook voorzien van een Type vertegenwoordigd retourtype van de methode. Dit kan worden gebruikt om te bepalen hoe het resultaat moet worden bereikt. Dit kan afwijken van het werkelijke type van het object (GetType()) als de methode een afgeleid type retourneert of null. Als de methode is getypt om te retourneren Task, ValueTaskof void, wordt het Type argument .null

Van toepassing op