小编Joh*_*hnB的帖子

如何在SignalR 2.x单元测试框架中向模拟客户端添加组支持?

我正在使用Moq为我的SignalR 2.x应用程序构建一个UnitTest框架.我目前正在通过以下方式嘲笑我的客户:

var mockClients = new Mock<IHubCallerConnectionContext>();
Clients = mockClients.Object;
Run Code Online (Sandbox Code Playgroud)

为了测试,我需要测试按组发送消息:

Clients.Group(groupName).sendSomeMessage(message);
Run Code Online (Sandbox Code Playgroud)

如何向我的模拟客户端添加组支持?

moq signalr signalr-hub signalr.client

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

错误“标记在 XML 命名空间中不存在”

为了说明这个问题,我创建了一个简单的示例项目,我在 XAML 定义中遇到了编译错误。

这是我的类定义:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MVVMTest.Foo
{
    public class FooTestClass
    {
        public String Name { get; set; }

        public String Key { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

需要注意的是 FooTestClass 驻留在 Foo 子文件夹中(MVVMTest 文件夹的)

这是我的 XAML:

<Window x:Class="MVVMTest.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:MVVMTest"
        xmlns:mView="clr-namespace:MVVMTest.Foo;assembly=MVVMTest"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">

    <Window.Resources>
        <mView:FooTestClass x:Key="ddd" />           
    </Window.Resources>
    <Grid>
    </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息

XML 命名空间“clr-namespace:MVVMTest.Foo;assembly=MVVMTest”中不存在标记“FooTestClass”。Line 12 Position 10.
MVVMTest C:\Dev Projects\MVVMTest\MVVMTest\MainWindow.xaml

VS 有问题吗?

.net wpf xaml visual-studio-2015

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

如何将WPF组合框绑定到XAML中的List &lt;Objects&gt;?

我在XAML中绑定WPF ComboBox时遇到问题。

这是我的对象定义和集合:

public class AccountManager
{
   public long UserCode { get; set; }
   public string UserName { get; set; }
}

public partial class MainWindow : Window
{    
   public List<AccountManager> AccountManagers;
}
Run Code Online (Sandbox Code Playgroud)

这是我的ComboBox的XAML定义:

ComboBox Name="cbTestAccountManagers"
          ItemsSource="{Binding AccountManagers}"
          DisplayMemberPath="UserName"
          SelectedValuePath="UserCode"
          Width="250"
Run Code Online (Sandbox Code Playgroud)

我不太确定自己在做什么错。我在运行/加载时没有任何错误。组合框显示,下拉菜单中没有任何内容。(它是空的)。

有人可以指出我正确的方向吗?

谢谢

c# wpf xaml combobox

5
推荐指数
2
解决办法
6919
查看次数

如何初始化 Apache-Zookeeper 的白名单?

我是 Apache Kafka 的新手。我已将其安装到 Ubuntu Linux VM (18.04) 中。

我已经使用默认配置从 Kafka 目录启动了 Zookeeper。 Apache Kafka 启动

Zookeeper 看起来启动成功了。从另一个终端窗口我试图测试。我正在使用 Telnet 连接到它并尝试发送“stat”命令。

当我这样做时,我收到以下错误消息: Zookeeper 错误信息

我是 Apache/kafka 的新手,Linux 经验有限。我用谷歌搜索,但我不太清楚如何更新白名单。

我从 Zookeeper 文档中找到了以下片段:

4lw.commands.whitelist(Java 系统属性:zookeeper.4lw.commands.whitelist)

3.4.10 中的新功能:此属性包含逗号分隔的四字母单词命令列表。引入它是为了对 ZooKeeper 可以执行的命令集提供细粒度的控制,因此用户可以在必要时关闭某些命令。默认情况下,如果未指定该属性,则它包含除“wchp”和“wchc”之外的所有支持的四字母单词命令。如果指定了该属性,则仅启用白名单中列出的命令。

以下是启用 stat、ruok、conf 和 isro 命令同时禁用其余四字母词命令的配置示例: 4lw.commands.whitelist=stat, ruok, conf, isro 用户还可以使用星号选项,这样他们就不会不必将每个命令一一包含在列表中。例如,这将启用所有四个字母的单词命令:4lw.commands.whitelist=*

有人可以解释白名单的用法以及如何正确初始化它吗?

谢谢,约翰B

apache-kafka apache-zookeeper

4
推荐指数
3
解决办法
3832
查看次数

如何使用 PowerShell 将新行插入到文件的行位置?

我希望能够按行位置将一行文本插入到文件中。

我已经看到了几个如何通过搜索行内容来执行此操作的示例,但我无法找到通过行位置执行此操作的示例。

我该如何在 PowerShell 脚本中执行此操作?

powershell

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

最新版本的System.Data.Sqlite不支持密码加密吗?

我有一个 .Net Core 应用程序,并使用 System.Data.SQLite.dll 包连接到 SQLite DB。

我正在尝试使用密码加密数据库。

在System.Data.SQLite.dll库的1.0.93.0版本中,我可以设置或更改数据库的密码加密:

SQLiteConnection con = new SQLiteConnection($"Data Source=DBName;Version=3;");
conn.SetPassword($"{password}");
conn.ChangePassword($"{password}");
conn.Open();
Run Code Online (Sandbox Code Playgroud)

在最新版本1.0.113.7中,该 api 似乎不再受支持。Visual Studio 在 SetPassword() 和 ChangePassword() 调用上引发编译器错误。

如何使用密码加密我的数据库?是否有另一种方法可以使用此库(或类似的库)来实现此目的?

system.data.sqlite .net-core

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

为什么 git clone 没有将源文件复制到我的本地目录?

我在使用 git clone 时遇到了问题。当我运行命令克隆存储库时,git 命令看起来成功完成。

git clone ssh://username@192.168.2.4:29418/sourceName
Run Code Online (Sandbox Code Playgroud)

我得到以下结果:

ssh://username@192.168.2.4:29418/sourceName
Cloning into 'sourceName'...
Warning: Permanently added '[192.168.2.4]:29418' (RSA) to the list of known hosts.
remote: Counting objects: 14091, done
remote: Finding sources: 100% (14091/14091)
remote: Total 14091 (delta 10639), reused 13901 (delta 10639)
Receiving objects: 100% (14091/14091), 84.60 MiB | 204.00 KiB/s, done.
Resolving deltas: 100% (10639/10639), done.
Checking connectivity... done.
Run Code Online (Sandbox Code Playgroud)

所以,看起来它克隆成功了。但是当我查看目标文件夹时,我只看到 .git 文件夹被创建和填充。

没有源文件作为克隆的一部分在本地复制。

我没有看到任何错误消息。可能出什么问题了?我如何“调试”这个?

谢谢,约翰B

git ssh git-clone

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

如何将 WPF 控件的边距绑定到属性?

我有一个 C#/.Net WPF 桌面应用程序。定义了一系列 WPF 控件,我希望在这些控件中在运行时动态更改边距。

如何将控件的边距绑定到后面代码中的属性?

考虑以下控制:

<TextBox Name="Foo" Text="Foo Text"  Margin="0,10,0,10">
Run Code Online (Sandbox Code Playgroud)

我在主窗口中定义了以下内容:

public double TopMargin {get; set;}
public double BottomMargin {get; set;}
Run Code Online (Sandbox Code Playgroud)

我希望能够动态更改边距,这样如果我在运行时 C# 代码中更改边距,新的边距值就会反映在 UI 中。

如果更容易,我会考虑使用:

public Thickness FooMargin{get; set;}
Run Code Online (Sandbox Code Playgroud)

实现这一点的最干净/最好的方法是什么?

谢谢

c# wpf xaml

2
推荐指数
1
解决办法
4658
查看次数

Scala 类定义中“隐式 val”的含义是什么?

我正在努力加快 Scala 的速度,但对关键字“ implicit ”的使用有点困惑。

我想我理解隐式参数的概念,其中参数没有显式传入,Scala 将搜索正确类型的值(在调用范围内)。

我对“隐式 val ”的使用感到困惑。

考虑以下代码片段:

case class DemoApp() {
   implicit val foo = CustomerFoo()
}
Run Code Online (Sandbox Code Playgroud)

这与传递到 DemoApp() 类构造函数的参数有关吗?

有人可以澄清一下吗?

谢谢,约翰B

scala implicit

2
推荐指数
1
解决办法
3137
查看次数

为什么我在尝试在 Asp.NetCore 应用程序中包含对 UserServiceBaseLifetime() 的调用时遇到编译器错误?

我正在尝试完成“.NET Core Workers as Windows Services”的示例。链接在这里:https ://devblogs.microsoft.com/aspnet/net-core-workers-as-windows-services/

我已包含Microsoft.Extensions.Hosting NuGet 包。我在尝试添加.UseServiceBaseLifetime( ) 时遇到编译问题。

这是代码片段:

using Microsoft.Extensions.DependencyInjection;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;

namespace WorkerService1
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .UseServiceBaseLifetime()
                .ConfigureServices((hostContext, services) =>
                {
                    services.AddHostedService<Worker>();
                });
    }
}
Run Code Online (Sandbox Code Playgroud)

这是编译器错误:

错误 CS1061“IHostBuilder”不包含“UseServiceBaseLifetime”的定义,并且找不到接受“IHostBuilder”类型的第一个参数的可访问扩展方法“UseServiceBaseLifetime”(您是否缺少 using 指令或程序集引用?)

我相信该示例基于 .Net Core 3.0 预览版。

我是否缺少 NuGet 包(包括参考)?

命名的方法是否已更改?

c# .net-core asp.net-core

2
推荐指数
1
解决办法
1148
查看次数

当SignalR在负载均衡器后面扩展时,一组中的所有客户都确保接收signalR呼叫吗?

我一直在研究与负载均衡器结合的SignalR实现,并且有一些基本的(如果不是简单的声音)问题.我必须在前言中说我对负载平衡器有零(0)经验.

我们将有2台服务器位于负载均衡器后面.客户端是ASP .Net应用程序.我们被告知负载均衡器保持会话亲和力.

请考虑以下情形:

Client1 & Client2 -- connect to GroupA--> Server1
Client3 & Client4 -- connect to GroupA--> Server2
Run Code Online (Sandbox Code Playgroud)

1)Server1对GroupA进行客户端调用 - 这假设客户端1-4将获得通知,对吗?

2)如何处理?

3)它是SignalR本身或负载均衡器的功能吗?

4)在组级别发送消息时,仅将消息传递到与该特定服务器上的组关联的客户端应用程序,还是将消息转发给该组的所有客户端?

有没有人对此有任何想法?

谢谢,JB

load-balancing signalr signalr-hub signalr.client

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

Serilog 日志记录库可以在 .net WPF 应用程序中工作吗?

我有一个 .Net C# WPF 应用程序。我正在尝试将滚动日志添加到应用程序中。在 Asp.Net 应用程序中,我们之前使用过 Serilog 包。

Serilog 是否适用于 .Net 桌面(非 asp.net)应用程序?我用谷歌搜索了一下,发现有一些与此相关的问题,但尚不清楚它们是否真正得到解决。

我的 Serilog Logger 的初始化如下所示:

string logsDirectory = Path.Combine(Environment.CurrentDirectory, "logs");

// Configure Serilog pipeline
Log.Logger = new LoggerConfiguration()
   .MinimumLevel.Debug()
   .WriteTo.RollingFile(Path.Combine(logsDirectory, "log-{Date}.txt"))
   .CreateLogger();
Run Code Online (Sandbox Code Playgroud)

我收到“RollingLog()”的以下编译错误。

错误 CS1061“LoggerSinkConfiguration”不包含“RollingFile”的定义,并且找不到接受“LoggerSinkConfiguration”类型的第一个参数的扩展方法“RollingFile”(您是否缺少 using 指令或程序集引用?)

如何将 git 与 WPF 一起使用?

.net c# wpf serilog

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

如何使用非标准格式将字符串转换为 .Net DateTime 对象?

我很难找出将非标准格式字符串转换为 DateTime 对象的正确方法。

考虑以下字符串:

2019 年 11 月 25 日星期一 14:07:13

我正在尝试使用以下带有自定义格式的代码片段进行转换:

CultureInfo provider = CultureInfo.InvariantCulture;
var sInstallDate = "Mon Nov 25 14:07:13 2019";
DateTime.TryParseExact(sInstallDate, "0:ddd MMM d h:mm:ss tt yyyy", provider, DateTimeStyles.None, out parsedDate);
Run Code Online (Sandbox Code Playgroud)

我使用的格式不起作用,它会引发异常。我如何完成这个转换?

.net c#

0
推荐指数
1
解决办法
52
查看次数