小编And*_*ita的帖子

加号在http url中的含义是什么? - > http:// +:80

可能重复:
*:80和+:80之间的区别是什么

这里加号的含义是什么?

netsh http add urlacl url = http:// +:80/MyUri user = DOMAIN\user

使用星号(*)和加号(+)之间有什么区别?

.net wcf http netsh

31
推荐指数
2
解决办法
7045
查看次数

SQLite与Visual Studio 2012和.NET 4.5?

SQLite是否与VS 2012和.NET 4.5一起使用?

我用NuGet安装了它(System.Data.SQLite.x64),并且还安装了一个与该站点分开的ado.net提供程序(只能找到一个用于.net 4.0),但它没有显示在添加列表中 - server explorer中的选项.

sqlite ado.net nuget visual-studio-2012

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

WCF:如果服务器断开连接,如何检测客户端

我有一个带有net.tcp DuplexChannel的WCF自托管服务.在服务器上,我运行以下命令断开客户端连接:

((ICommunicationObject)client.CallbackChannel).Close();
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我如何检测客户端已断开连接?

我已经在回调的InstanceContext和服务器的通道上连接到Closed和Faulted-events:

InstanceContext callback = new InstanceContext(callbackImp);
callback.Closed += new EventHandler(callback_Closed);
Run Code Online (Sandbox Code Playgroud)

((ICommunicationObject)Channel).Closed += new EventHandler(Channel_Closed);
Run Code Online (Sandbox Code Playgroud)

但没有任何作用.我从来没有收到通知.我现在使用的解决方法是在回调中使用一个方法来触发与客户端的断开连接.但我宁愿不这样做.我特别不想让服务器等待用户断开连接.

编辑

我刚刚意识到,当从客户端断开连接时,我在服务合同中运行一个标有IsTerminating = true的方法:

[OperationContract(IsTerminating = true)]
void Disconnect();
Run Code Online (Sandbox Code Playgroud)

我认为它在回调合约上会是一样的吗?我尝试将相同的方法添加到我的回调中,它确实从服务器的角度终止了回调通道,但我仍然没有收到客户端的通知......很奇怪

编辑

我发现了一些关于此的更多信息:

当服务器中止回调通道时,故障返回到客户端,客户端出现故障,我们在客户端上获得Faulted事件.

当服务器关闭回调通道时,会话仍处于打开状态,直到客户端发出关闭.

客户端关闭频道后,您将看到已关闭的事件.

根据这个声明,关闭事件不是通过从服务器关闭回调通道而大量触发的,客户端也必须关闭它.所以我可以在回调的终止Disconnect方法中在客户端上运行Close.或者我可以在回调服务器端使用Abort方法,并在回调上跳过使用Disconnect方法.我不知道哪一个我老老实实.Hmmmm.

编辑

我选择了Abort-approach.这似乎是最合乎逻辑的方法,而且效果非常好.客户端在callback-instancecontext上收到有关Faulted事件的通知.尼斯.

wcf callback notify disconnect net.tcp

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

在WPF中使用Setter的EventTrigger?

我在WPF窗口中有一个普通的Button和TextBox,我想要一个Button的模板,一个EventTrigger监听Button.Click,然后设置TextBox的boolean属性.没有代码隐藏.

像这样的东西:

<ControlTemplate.Triggers>
  <EventTrigger SourceName="MyButton" RoutedEvent="Button.Click">
    <Setter TargetName="MyTextBox" Property="Focusable" Value="False" />
  </EventTrigger>
Run Code Online (Sandbox Code Playgroud)

wpf setter templates triggers

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

使用具有模糊容差算法的笔划作为加密密钥

如何使用模糊容差加密/解密?

我希望能够在InkCanvas上使用Stroke作为加密的关键,但是当再次解密时,用户不必绘制完全相同的符号,只是类似.这可以在.NET C#中完成吗?

---更新(9 sep)---

我理想的是一种加密算法,它可以接受基于某些基本密钥和定义允许差异的函数的特定密钥范围内的任何密钥.

我在本地进行所有加密/解密,所以我不需要安全地通过电线发送任何东西.我不想存储用于加密的密钥,所以我没有什么可比的.我可以想出一些方法为每个相似的笔画生成相同的键,但如果想要接受任何类型的符号(不仅仅是字母),这并不容易.另一种选择是,如果加密密钥可以通过设计以某种方式接受类似的密钥,我不知道它是否可能......?

.net c# language-agnostic encryption fuzzy-comparison

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

WPF:按可用宽度展开TextBox,但不按内容展开?

我需要一个很好的解决方案,使网格中的TextBox扩展到可用空间,但不会根据文本中的文本长度进行扩展.

我发现的大多数解决方案是制作一个虚拟边框并绑定到它的ActualWidth,但对我来说它是一个hacky解决方案.边界解决方案需要在边界设置一个小的边缘,这是不好的.将其设置为低将导致UI表现得非常奇怪.不喜欢这个解决方案.必须有一个更好的?我想要的是文本框不能随其内容扩展.它不应该那么难.请让我知道如何做到这一点.

编辑:

我注意到的一件奇怪的事情是,以下代码使边框变得更大,然后必须是:

<Grid>
  <Border Name="dummy1" Background="Red" />
  <TextBox Text="23242342343555554234234444444444423423423432344444444" Width="{Binding ActualWidth, ElementName=dummy1}" />
</Grid>
Run Code Online (Sandbox Code Playgroud)

替换边框和文本框顺序使边框很好地适应文本框,但我需要的是相反的.如前所述,将边距(在边框上)设置为至少0.5会使其工作,但结果会有一点麻烦的UI.

wpf textbox stretch width

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

Visual Studio:如何使用WPF编写Editor Extensions

我试图为Visual Studio编写一个编辑器扩展.我有下载的VS SDK并创建了一个新的Visual Studio Package项目.但为我创建的虚拟控件是Windows窗体控件而不是WPF控件.我试图用WPF控件取而代之,但效果不佳.无论如何这可能吗?

另一个相关问题:是否只能编写文本编辑器?我真正想要的是一个看起来更像是具有许多不同领域的表单的编辑器.但它似乎不是这样做的?EditorPane上有许多接口仅暗示文本编辑器模型.

理想情况下,我想要一个与resx-editor非常相似的编辑器,其中正在编辑的文件具有xml-content,而editor-ui不是单个文本框,并且生成的cs文件作为子文件输出.这可能与编辑器扩展有关吗?

wpf plugins add-in visual-studio

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

在 Linux 上使用 SkiaSharp 1.68 时出现 DllNotFoundException

在 Linux 上将 SkiaSharp 1.68.0 与 .NET Core 2.2 结合使用,并在尝试在 jpeg-memory-stream 上使用 Decode 时出现此错误(相同的代码适用于 Windows):

System.TypeInitializationException: The type initializer for 'SkiaSharp.SKAbstractManagedStream' threw an exception. ---> System.DllNotFoundException: Unable to load shared library 'libSkiaSharp' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: liblibSkiaSharp: cannot open shared object file: No such file or directory
   at SkiaSharp.SkiaApi.sk_managedstream_set_delegates(IntPtr pRead, IntPtr pPeek, IntPtr pIsAtEnd, IntPtr pHasPosition, IntPtr pHasLength, IntPtr pRewind, IntPtr pGetPosition, IntPtr pSeek, IntPtr pMove, …
Run Code Online (Sandbox Code Playgroud)

.net-core skiasharp

9
推荐指数
2
解决办法
9611
查看次数

推迟对Knockout中所有计算属性的评估?

我试图为我的所有视图模型创建一个基类,所以我可以检查root-vm上的"isDirty"并检查整个vms树(同时避免循环依赖).

执行此操作时,我意识到ko-properties的顺序非常重要,因为计算属性根据创建属性时存在的其他属性来设置其订阅.因此,如果我将一个像下面的那样的isDirty-computed放在一个基类中,它总是会在它所依赖的属性之前进行初始化.无论如何,为了缩短它,我注意到我可以使用deferEvaluation来解决这个问题.

我的问题是:

在所有计算属性上使用deferEvaluation是否有任何缺点?为什么默认情况下这种行为是正确的?我什么时候需要它设置为假?

我可以这样做是否更好?有关改进或以其他方式进行的任何建议吗?

或者,有没有办法显式禁用计算属性的初始化,直到创建具有其所有属性的整个对象,然后以某种方式运行它.我的意思是对我来说唯一的问题是订阅是在所有属性到位之前设置的.

注意:我正在使用KO Lite Tools进行脏跟踪

function ViewModel() {
    var self = this;
    self.isDirty = ko.computed(function () {
        for (var p in self) {
            if (self[p].isDirty) {
                if (self[p].isDirty()) return true;
            }
            else if (self[p].subscribe && self[p].push) { // assuming ko.observableArray
                for (var i = 0, j = self[p]().length; i < j; i++) {
                    if (self[p]()[i].isDirty) {
                        if (self[p]()[i].isDirty()) return true;
                    }
                }
            }
        }
        return false;
    }, this, { deferEvaluation: true });
}
Run Code Online (Sandbox Code Playgroud)

注意:注意,如果我有另一个依赖于isDirty的计算属性,则此代码将失败.这有点令人期待,但也很不幸.如果我可以在创建对象后延迟并强制所有订阅,那将是很棒的.

knockout.js

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

为什么要将命令和事件限制为一个聚合?CQRS + ES + DDD

请解释在进行CQRS,ES和DDD时,为什么同时修改多个聚合是一个坏主意.有什么情况它还可以吗?

以PurgeAllCompletedTodos等命令为例.我希望此命令导致一个事件,通过将IsActive设置为false来更新每个已完成的Todo聚合的状态.

为什么这不好?

我能想到的一个原因:

更新域状态时,将事务限制在整个状态的明确定义的部分可能是好的,这样在更新期间只需要对此部分进行写锁定.这样做可以在并行的不同聚合上进行多次写入,这可以在某些极端繁重的情况下提高性能.

domain-driven-design cqrs event-sourcing

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