1
나는 폼 빌더 클래스로 리다이렉트하는 LUIS Dialog 클래스를 가지고 있는데, 나는 formbuilder 메소드에 context.Activity를 전달하고 다른 클래스에 상주한다. 코드를 작성한 후 어떻게해야합니까? 그럼 당신은 lambda 표현을 사용할 수 있습니다봇 프레임 워크에서 formbuilder 클래스에 액티비티를 전달하는 방법
public static IForm<FlightBooking> BuildForm(IDialogContext context)
{}
:
public class LUISManager : LuisDialog<object>
{
[LuisIntent("BookFlight")]
public async Task BookFlight(IDialogContext context, LuisResult result)
{
//context.Activity
FlightBooking cb = new FlightBooking();
BuildFormDelegate<FlightBooking> MakeFlightBookingForm = FlightBooking.BuildForm;
var flightBooking = new FormDialog<FlightBooking>(cb, MakeFlightBookingForm, FormOptions.PromptInStart, null);
context.Call<FlightBooking>(flightBooking, FlightBookingComplete);
}
}
[Serializable]
public class FlightBooking
{
public static IForm<FlightBooking> BuildForm()
{
return new FormBuilder<FlightBooking>().Message("Tell me meeting details!")
.Field(nameof(title))
.Field(nameof(StartDate))//, validate: ValidateStartDate
.Field(nameof(EntryTime), validate:ValidateCallTime)
.Build();
}
},
나는 우리가 BuildForm 방법에서 "IDialogContext 컨텍스트"매개 변수를 전달할 수 있습니다 알고 있지만 어떻게
더 많은 시나리오가 있습니까? 위의 코드를 문제없이 테스트했습니다. –
안녕하세요 Eric Dahlvang, FormBuilder에 컨텍스트 매개 변수가있는 코드를 테스트 해 보셨습니까? 내가 잘못 했어. 내 호에 다른 게시물을 추가했습니다. 잠시 살펴볼 수 있습니까? https://stackoverflow.com/questions/45077629/exception-in-bot-framework-application-in-a-formbuilder-cannot-serialize-deleg/45111955?noredirect=1#comment77242996_45111955 –