2
ユーザーから追加情報を収集するためにLuisインテントから子ダイアログを作成しようとしています。しかし、私は、サーバーのダイアログクラスは'メソッドグループ'から 'ResumeAfter <object>'に変換できません
[Serializable]
public class ServerDialog : IDialog<object>
{
public async Task StartAsync(IDialogContext context)
{
await context.PostAsync("Enter your server's name (example: 10.10.10.52)");
context.Wait(ReceiveServerDialog);
}
public async Task ReceiveServerDialog(IDialogContext context, IAwaitable<IMessageActivity> result)
{
IMessageActivity message = await result;
context.Done(message.Text);
}
}
私はあるcontext.Call
[LuisIntent("Login")]
public async Task LoginIntent(IDialogContext context, LuisResult result)
{
var serverdialog = new ServerDialog();
await context.Call(serverdialog, ResumeAfterServerDialog); //error here
}
private async Task ResumeAfterServerDialog(IDialogContext context, IAwaitable<string> serverName)
{
this.serverAddress = await serverName;
await context.PostAsync($"you've entered {this.serverAddress}");
context.Wait(MessageReceived);
}
の第2引数に「ResumeAfter <オブジェクト>」エラーメッセージに「メソッドグループ」から変換できません受けています
MessageReceivedの2番目のパラメータの型はIAwaitableですが、2番目のパラメータがIAwaitableのメソッドが必要です(たとえば、nullを結果値として渡す場合)あなたの子ダイアログのタイプはIDialogです。
しかし、私はこれを理解できませんでした。
であるためにあなたの
ReceiveServerDialog
方法を変更する(IAwaitable<string> serverName
パラメータで)変更あなたのダイアログを文字列を期待しているだけあなたがこれを投稿したらすぐに正しい修正がありました。 – Teragon
はこれを理解する日数を要しました – shabby