小编Fra*_*k59的帖子

对象序列化为JSON(使用Gson).如何在UpperCamelCase中设置字段名称?

我需要使用Google Gson库将简单Java对象列表序列化为JSON.

物体:

public class SimpleNode {
    private String imageIndex;
    private String text;

    public String getImageIndex() {
        return imageIndex;
    }

    public void setImageIndex(String imageIndex) {
        this.imageIndex = imageIndex;
    }

    public String getText() {
        return text;
    }

    public void setText(String text) {
       this.text = text;
    }
}
Run Code Online (Sandbox Code Playgroud)

我编写了以下代码序列代码:

 List<SimpleNode> testNodes = repository.getElements(0);
 Gson gson = new Gson();
 String jsonNodesAsString = gson.toJson(testNodes);
Run Code Online (Sandbox Code Playgroud)

它可以工作,但JSON对象的字段名称是lowerCamelCase.像这样:

[
  {
    "imageIndex": "1",
    "text": "Text 1"
  },
  {
    "imageIndex": "2",
    "text": "Text 2"
  }
]
Run Code Online (Sandbox Code Playgroud)

如何使用UpperCamelCase字段名称获取JSON,如下所示:

[
  { …
Run Code Online (Sandbox Code Playgroud)

java serialization json gson

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

AvalonEdit:TextEditor是否具有快速搜索/替换功能?

我用AvalonEdit:TextEditor.我可以为此控件启用快速搜索对话框(例如在Ctrl-F上)吗?或者也许有人将搜索词的代码转换为 AvalonEdit:TextEditor文本?

c# search avalonedit

12
推荐指数
3
解决办法
6152
查看次数

如何将 OpenApi3 api 定义本地化为多种语言?

我将 API 定义为 OpenAPI3 文档,并使用 swagger UI 作为查看器。所有“描述”字段现在均为英语。但我需要支持多种语言的 API 文档(例如英语和俄语)。

如何将 OpenAPI3 文档本地化为多种语言?是否存在一些标准机制,或者唯一可能的方法是为这个问题编写我自己的自定义解决方案?

swagger-ui openapi

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

如何在不同的核心上拆分长任务?

我是多线程的新手.我的计算机上有4个逻辑进程,我想在4个不同的核心上的线程中运行4个相同的任务.我该怎么做?我尝试使用BackgroundWorker但是4个BackgroundWorker实例只填充了4个可用的4个核心.我用BackgroundWorker的代码示例:

        BackgroundWorker worker = new BackgroundWorker();
        worker.DoWork += new DoWorkEventHandler(worker_DoWork);
        worker.RunWorkerAsync(calculationParams);
        BackgroundWorker worker1 = new BackgroundWorker();
        worker1.DoWork += new DoWorkEventHandler(worker_DoWork);
        worker1.RunWorkerAsync(calculationParams1);

        BackgroundWorker worker2 = new BackgroundWorker();
        worker2.DoWork += new DoWorkEventHandler(worker_DoWork);
        worker2.RunWorkerAsync(calculationParams2);

        BackgroundWorker worker3 = new BackgroundWorker();
        worker3.DoWork += new DoWorkEventHandler(worker_DoWork);
        worker3.RunWorkerAsync(calculationParams3);
Run Code Online (Sandbox Code Playgroud)

c# multithreading

6
推荐指数
1
解决办法
1049
查看次数

如何以编程方式将BindingExpression.Status设置为Active?

我正在从WPF页面上的StackPanel将FrameworkElement转移到以编程方式创建的StackPanel.在某一点上,我需要刷新绑定并获取属性值.

此时FrameworkElement.DataContext具有正确的值和BindingExpression.Status==BindingStatus.Unattached所有绑定表达式.我执行BindingExpression.UpdateTarget,但属性值为空.

我找到了BindingExpression.UpdateTarget()的源代码:

    public override void UpdateTarget() 
    {
        if (Status == BindingStatus.Detached) 
            throw new InvalidOperationException(SR.Get(SRID.BindingExpressionIsDetached)); 

        if (Worker != null) 
        {
            Worker.RefreshValue();  // calls TransferValue
        }
    } 
Run Code Online (Sandbox Code Playgroud)

Worker在内部覆盖void中获取实例BindingExpression.Activate().同样在Activate()里面BindingExpression.Status设置为BindingStatus.Active.

如何以编程方式启动执行BindingExpression.Activate()并在此之后生成UpdateTarget?

更新

解决方案(感谢,Olli):

public  void UpdateAllBindingTargets( DependencyObject obj)
    {

        FrameworkElement visualBlock = obj as FrameworkElement;
        if (visualBlock==null)
            return;
        if (visualBlock.DataContext==null)
            return;
        Object objDataContext = visualBlock.DataContext;

        IEnumerable<KeyValuePair<DependencyProperty, BindingExpression>> allElementBinding = GetAllBindings(obj);
        foreach (KeyValuePair<DependencyProperty, BindingExpression> bindingInfo in allElementBinding)
        {
            BindingOperations.ClearBinding(obj, bindingInfo.Key);

            Binding myBinding = new …
Run Code Online (Sandbox Code Playgroud)

c# wpf

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

如何在HaProxy上启用http响应缓冲?

我希望我理解正确:HAProxy能够(http模式)缓冲来自后端服务器的输出(响应),以便尽快释放服务器进程.因此,慢客户端"仅"消耗HAProxy上的资源.HAProxy可以缓冲多少来自响应的数据?有配置变量吗?在HAProxy用户空间中是tcp/ip缓冲还是缓冲?

haproxy

5
推荐指数
0
解决办法
754
查看次数

Net Core:从Autofac模块访问appsettings.json值

AspNet核心应用

1)像这样的Autofac模块

public class AutofacModule : Module
{
    protected override void Load(ContainerBuilder builder)
    {
      //Register my components. Need to access to appsettings.json values from here
    }
}
Run Code Online (Sandbox Code Playgroud)

2)步骤1中的模块已注册到 Startup.cs

public void ConfigureContainer(ContainerBuilder builder)
    {
       builder.RegisterModule(new AutofacModule());
    }
Run Code Online (Sandbox Code Playgroud)

如何从中访问appsettings.jsonAutofacModule?我需要在内部创建对象AutofacModule并将其用于DI。

dependency-injection autofac .net-core autofac-module

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

如何针对不同操作系统覆盖appsettings.json?

我的项目是简单的WebApi服务器,基于netcoreapp2.0。

我有简单的appsettings.json

{
  "logPath":"C:\logs\myLog.log"
}
Run Code Online (Sandbox Code Playgroud)

logPath如果应用程序可以在 Windows 平台上运行,那没关系,但我也想在 Linux 上运行它。我知道,我可以使用控制台参数或环境变量来覆盖此设置,但我想获得操作系统特定的覆盖appsettings.json。类似于appsettings.linux.json(可能是 appsettings 文件,取决于 RID)的内容

{
  "logPath":"\var\tmp\myLog.log"
}
Run Code Online (Sandbox Code Playgroud)

理想情况下,如果这个理论appsettings.linux.json仅包含在构建输出中,如果我将为特定 RID 构建我的应用程序。

如果可用的话我该怎么做?

c# .net-core .net-standard-2.0

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

Net Core:如何通过端口分隔控制器?

我需要通过 netcore2.0 自托管 Web 服务内的端口分隔控制器。

例子:

有 2 个端口(p1 和 p2)和 3 个控制器(c1、c2、c3)。需求方案:c1处理p1的请求,c2和c3处理p2的请求。

关于我该如何做到这一点有什么想法吗?

c# .net-core asp.net-core-2.0

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

System.Net.HttpClient:SendAsync 失败,OperationCanceledException 没有通过网络的 http 请求

我们System.Net.Http.HttpClient用于 k8s 内部微服务之间的调用。

  • 操作系统 Linux(在 docker 内部)
  • dotnet 目标框架:netcoreapp2.1
  • 服务器:红隼
  • 协议:http

几天前,我们注意到 http 调用的非常奇怪的行为:微服务之间的某些调用(接近 2-3%)因错误而失败

System.OperationCanceledException: The operation was canceled.
   at System.Net.Http.HttpClient.HandleFinishSendAsyncError(Exception e, CancellationTokenSource cts)
   at System.Net.Http.HttpClient.FinishSendAsyncBuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
   at OurCode.HttpServiceClient.GetStringResponseAsync(String methodUri, HttpMethod httpMethod)
   ...another our code...
Run Code Online (Sandbox Code Playgroud)

在我们的 http 调用超时后(3 秒)。但是没有关于被叫服务内部调用的日志。

我们启用了 packetbeat 来跟踪 http 请求,并且还注意到,没有任何从调用方服务到被调用方服务的 http 请求被执行。此服务的 CPU、内存和网络一直正常。

我们用于 http 调用的代码的简化版本如下所示:

public async Task<string> GetStringResponseAsync(String methodUri,  HttpMethod httpMethod)
{
    int timeoutInMilliseconds = 3000;
    var tokenSource = new CancellationTokenSource();
    var rm = new …
Run Code Online (Sandbox Code Playgroud)

c# dotnet-httpclient .net-core

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