是否有更快/更有效的方式在反应原生中声明多个变量?代替
let foo = 'foo';
let bar = 'bar';
let foobar = 'foobar';
Run Code Online (Sandbox Code Playgroud)
对于三个变量显然不是问题,但对于更大的变量集,是否有更好的方法?
我正在使用Microsoft bot框架创建机器人,机器人将接收餐馆的订单,我想知道如何处理多个对话框,例如客户发出第一个订单,然后我希望机器人问你做什么想要别的吗?然后客户说是/否,因为保持第一个状态再次重复相同的dailog,我现在在文档中看到的只有一个对话和一个对话框.
非常感谢
我已经创建了我的第一个bot应用程序,但它在Bot框架模拟器中运行时出错.它显示我发送的消息的状态,如"无法发送".请建议我可能是什么原因.

我的意思是右上角标有X的小退出/取消按钮.我想实现一个接受用户名/密码的登录对话框,所以显然我不希望用户能够解除模式弹出窗口.如果无法删除或禁用该按钮,那么我是否可以通过某种方式拦截结束事件并停止关闭?
我一直试图从MessagesController将服务传递给LuisDialog,如下所示:
public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
...
await Conversation.SendAsync(activity, () => new ActionDialog(botService));
Run Code Online (Sandbox Code Playgroud)
使用依赖注入将botService注入到MessageController中.
当我开始机器人对话时,我收到一个错误:
在程序集'ThetaBot.Services,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'中键入'ThetaBot.Services.BotService'未标记为可序列化.
寻找解决方案我可以找到:https: //github.com/Microsoft/BotBuilder/issues/106
我现在更了解你的问题.我们对服务对象有类似的问题,我们希望从容器而不是序列化的blob中实例化.以下是我们如何在容器中注册这些对象 - 我们在对所有具有Key_DoNotSerialize键的对象进行反序列化时应用特殊处理:
builder
.RegisterType<BotToUserQueue>()
.Keyed<IBotToUser>(FiberModule.Key_DoNotSerialize)
.AsSelf()
.As<IBotToUser>()
.SingleInstance();
Run Code Online (Sandbox Code Playgroud)
但是,我找不到详细说明如何在现有Bot Framework模块中注册自己的依赖项的示例或文档.
我还发现了https://github.com/Microsoft/BotBuilder/issues/252,它表明应该可以从容器中实例化对话框.
我试过这个建议:
Func<IDialog<object>> makeRoot = () => actionDialog;
await Conversation.SendAsync(activity, makeRoot);
Run Code Online (Sandbox Code Playgroud)
和...一起:
builder
.RegisterType<ActionDialog>()
.Keyed<ActionDialog>(FiberModule.Key_DoNotSerialize)
.AsSelf()
.As<ActionDialog>()
.SingleInstance();
Run Code Online (Sandbox Code Playgroud)
这不起作用.
我也尝试过:
var builder = new ContainerBuilder();
builder.RegisterModule(new DialogModule_MakeRoot());
// My application module
builder.RegisterModule(new ApplicationModule());
using (var container = builder.Build())
using (var scope …Run Code Online (Sandbox Code Playgroud) 我使用Microsoft Bot Framework(版本3.0.0.59)为Skype实现了bot应用程序.
我实现了如何检索Skype名称和ID,但我无法检索Skype帐户的用户名.我怎样才能获得Skype帐户的用户名?
我正在尝试在Microsoft Bot Framework上创建一个简单的聊天机器人,我想在我的应用程序中添加LUIS应用程序ID和LUIS订阅密钥.
我在哪里可以获得订阅密钥?

我遇到了一个问题,我无法在互联网上的任何地方找到任何信息.我与许多同事共享一个Azure目录,因此,我们中的任何人都可能正在使用Portal中的资源.但是,当任何人创建Bot服务时,没有其他人可以访问该资源.请注意,创建Bot服务的人可以随心所欲地使用它,但是其他任何人都会看到错误"无法找到具有指定ID的机器人".(按原样写)

我们知道权限没有问题,因为每个人都可以完全访问所有内容,而且问题似乎只出现在Bot服务资源上.
TL;DR为什么这种转变不是从预期的地方开始?
也就是CardView所在的地方。

平台/Deps: Android Studio 1.0-RC2、TargetSdk 21、MinSdk 21、AppCompat-21.0.2、CardView-21.0.2、RecyclerView-21.0.2。
测试对象: Genymotion Nexus 5 Lollipop Preview
我有三个共享元素:
来源:
<CardView
android:transitionName="cardView">
<ImageView
android:transitionName="imageView">
<TextView
android:transitionName="textView">
Run Code Online (Sandbox Code Playgroud)
目标:
<RelativeLayout
android:transitionName="cardView">
<ImageView
android:transitionName="imageView">
<TextView
android:transitionName="textView">
Run Code Online (Sandbox Code Playgroud)
请注意,以下过渡名称是以编程方式添加的。这是因为 CardView 保存在 RecyclerView 上,并且有很多副本。我试过使用相同的名称(如在 XML 实例中),但也不起作用。
RecillerView.Adapter 这样做:
@Override
public void onBindViewHolder(ViewHolder viewHolder, int position) {
//...
ViewCompat.setTransitionName(viewHolder.mCardView, "cardViewTransition" + position);
ViewCompat.setTransitionName(viewHolder.mImageView, "imageTransition" + position);
ViewCompat.setTransitionName(viewHolder.mTextView, "textTransition" + position);
//...
}
Run Code Online (Sandbox Code Playgroud)
HomeActivity 这样做:
@Override
protected void onCreate(Bundle savedInstanceState) {
getWindow().requestFeature(android.view.Window.FEATURE_CONTENT_TRANSITIONS);
getWindow().requestFeature(android.view.Window.FEATURE_ACTIVITY_TRANSITIONS);
// ..
mRecyclerView.addOnItemTouchListener(
new RecyclerItemClickListener(this, new RecyclerItemClickListener.OnItemClickListener() …Run Code Online (Sandbox Code Playgroud) 我有一个简单的表格,
[Serializable]
class CreateNewLeadForm
{
public string FirstName;
public string LastName;
public static IForm<CreateNewLeadForm> BuildForm()
{
return new FormBuilder<CreateNewLeadForm>()
.Message("Lets create a New Lead")
.Field(nameof(FirstName))
.Field(nameof(LastName))
.Build();
}
};
Run Code Online (Sandbox Code Playgroud)
还有一个简单的对话框,
public class GreetDialog : IDialog<object>
{
public async Task StartAsync(IDialogContext context)
{
context.Wait(MessageReceivedAsync);
}
public async Task MessageReceivedAsync(IDialogContext context, IAwaitable<Message> argument)
{
context.Wait(MessageReceivedAsync);
}
}
Run Code Online (Sandbox Code Playgroud)
如何从主对话本身调用启动FormDialog?一般来说,我们如何在Dialog中开始新的对话框?
botframework ×6
c# ×3
azure ×2
android ×1
autofac ×1
azure-language-understanding ×1
bots ×1
chatbot ×1
ecmascript-6 ×1
javascript ×1
silverlight ×1
skype ×1
skype-bots ×1