小编lar*_*eck的帖子

Wit.ai将数字识别为位置

我们面临的问题是,wit.ai几乎将每个数字都识别为一个位置.有时甚至作为DateTime,但几乎从不作为数字.我们试着教它1是数字,2是数字等,但它似乎没有选择,请看下面的截图:

在此输入图像描述

我们做错了吗?

nlp machine-learning wit.ai

9
推荐指数
1
解决办法
231
查看次数

使用具有复杂类型作为键的对象引用和字典将复杂类型序列化/反序列化为Json

我试图序列化/反序列化复杂类型.我希望保留对象引用,这意味着如果在对象图中多次引用对象的实例,则在反序列化期间,我希望反序列化器仅创建该实例一次并多次引用它(与创建该对象实例相比)多次).

我需要系统处理的第二件事是字典,其中密钥本身就是一个复杂类型.

我能够通过DataContractSerializer序列化到XML来实现这两个目标.但是,我没有找到任何可以执行此操作的Json序列化程序.我试过Json.NET和ServiceStack,但没有运气.

请参阅以下示例代码:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Xml;
using Newtonsoft.Json;

namespace Serialization
{
    class Program
    {

        static void Main(string[] args)
        {
            var transportModel = CreateSampleModel();


            //Serialize with DataContractSerializer
            var serializer = new DataContractSerializer(typeof(TransportModel), null, int.MaxValue, false, true, null, null);
            string serializedObjectXml;
            using (var sw = new StringWriter())
            {
                using (var writer = new XmlTextWriter(sw))
                {
                    serializer.WriteObject(writer, transportModel);
                    writer.Flush();
                    serializedObjectXml = sw.ToString();
                }
            }

            //Deserialize with DataContractSerializer
            byte[] byteArray = Encoding.ASCII.GetBytes(serializedObjectXml); …
Run Code Online (Sandbox Code Playgroud)

c# serialization json json.net

7
推荐指数
1
解决办法
3万
查看次数

在给定的时间限制之后,Z3中的TryFor不会停止检查

我使用的是Z3的.NET API.当我通过调用实例化解算器时:

Solver s = ctx.MkSolver(ctx.TryFor(ctx.MkTactic("qflia"), TimeLimit));
Run Code Online (Sandbox Code Playgroud)

对于某些型号的声明,给它一个60秒(60000毫秒)的TimeLimit

s.Check()
Run Code Online (Sandbox Code Playgroud)

60秒后不返回.对于某些型号,它会在几秒钟后返回,在我的情况下不会出现问题,但对于某些型号它根本不会返回(我在3天后取消了该过程).

如何在给定的时间限制后强制Z3停止检查?

.net z3

5
推荐指数
1
解决办法
152
查看次数

使用 MatBottomSheet 时如何关闭浏览器背面的工作表

正如标题所示,我正在使用https://material.angular.io/components/bottom-sheet/overview。当底部工作表打开并且用户单击浏览器的后退按钮时,他将被导航离开打开底部工作表的页面。相反,我只想关闭“浏览器返回”上的底部工作表。在 Angular 5/6 中实现这一目标的最佳方法(如果有)是什么?

angular-material angular

5
推荐指数
1
解决办法
1万
查看次数

等待时,Akavache的GetObject <T>挂起.知道这里有什么问题吗?

我有一个Xamarin.Forms应用程序,在我的App类中使用此代码(是的,这只是一个演示问题的示例):

    public App()
    {
        BlobCache.ApplicationName = "MyApp";
        BlobCache.EnsureInitialized();


        // The root page of your application
        MainPage = GetMainPage();
    }

    public object BlockingGetExternalUser()
    {
        return GetExternalUser().Result;
    }

    private async Task<object> GetExternalUser()
    {
        try
        {
            return await BlobCache.LocalMachine.GetObject<object>("user");
        }
        catch (KeyNotFoundException)
        {
            return null;
        }
    }
Run Code Online (Sandbox Code Playgroud)

密钥"用户"不存在,所以我希望得到一个KeyNotFoundException.但是我从来没有看到过抛出这个异常.相反,它只是"挂起",永远不会从await GetObject调用返回.

我在Android 5.0手机上运行此功能.

任何想法如何解决这一问题?我做了一些根本错误的事吗?

更新:旁注:不是立即尝试GetObject,而是可以尝试检查密钥是否实际存在于缓存中,然后才从缓存中检索它.但是,如果我没有弄错的话,除了调用GetObject并捕获异常之外没有其他方法可以进行检查,就像上面的示例一样.对于一个人只想知道项目是否存在的情况,这似乎并不理想.也许在Akavache中使用"存在()"方法会很好吗?或许我错过了什么?

Update2:更改示例以在构造函数中不使用async方法.只是为了证明这不是问题.

Update3:从构造函数中删除调用.当我从代码中的任何地方调用BlockingGetExternalUser时,await仍会挂起.

c# android portable-class-library xamarin.forms akavache

4
推荐指数
1
解决办法
2483
查看次数

如何为Akavache设置JsonSerializerSettings?

我为JSON.NET设置了全局转换器默认值,如下所示:

        var jsonSerializerSettings = new JsonSerializerSettings
        {
            Converters = new JsonConverter[] { new QuestionTypeConverter() }
        };
        JsonConvert.DefaultSettings = () => jsonSerializerSettings;
Run Code Online (Sandbox Code Playgroud)

这适用于我的其余代码("QuestionTypeConverter"正在使用并按预期工作),但是,当从Akavache缓存中检索对象时,我的"QuestionTypeConverter"被忽略,因此我的对象无法正确反序列化.如何使用Akavache强制使用我的自定义类型转换器,或者让Akavache使用JSON.NET的默认设置?

json akavache

3
推荐指数
1
解决办法
687
查看次数