小编And*_*ita的帖子

WPF-Grid如何实现SharedSizeGroup行为?

我试图弄清楚Grid如何在列和行中进行大小共享.我正在用反射器查看网格代码但找不到任何命中.共享/行共享大小应该首先获得所需的大小,然后再次使用最大找到的大小进行测量,以获得相同的大小,以避免被排除在编排通道中,如果我没有弄错的话.但我无法使用Reflector找到任何与大小共享的代码.有人可以解释一下大小共享应该如何在一个自定义面板类中大致实现,以便进行测量和安排?

wpf custom-controls

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

WPF:如何使用 CellSpacing 实现自定义网格?

我想念 WPF 中的 HTML-cellspacing。我试图通过从 Grid 覆盖自定义 Grid 类,然后修改 MeasureOverride 和ArrangeOverride 来获得我想要的行为,从而在 WPF 的 Grid 中实现类似的东西。即网格中的每个单元格与其他单元格之间应该有固定的间距(不是填充)。这怎么可能?

wpf cellspacing

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

从开发的角度来看,Windows 8中的.NET:AppContract,Marketplace和WPF/C#

我对Windows 8中出现的所有新内容感到非常兴奋,但同时又有点担心如何以及如果我可以继续使用我已经使用.NET和C#构建的代码和自定义组件作为Windows开发者.关于这一点,我有一些一般的混合问题.希望你不介意我把它们放在一个帖子中:

  • Windows 8商店是适用于都市风格的应用程序还是常规的WPF桌面应用程序?包括推动更新和为公司员工提供应用程序?

  • WPF应用程序是否也可以使用新的App契约?AppContract是否基于WCF服务,可能在网络上进行UDP发现?我可以使用App Contract框架在自己的应用程序之间签订自己的合同吗?

  • 我不是特别担心WPF是否会被抛弃.我可以没有它.令我担心的是,如果我仍然可以在C#中编写演示文稿和业务层代码并将其用作我的应用程序的后端,无论我将使用什么UI框架,HTML,Silverlight,WPF或者你有什么.如果我仍然能够在C#中编写逻辑并使用X UI框架呈现它,那么我是一个开心的开发人员.我听说我可以从JavaScript访问.NET框架.但是自定义组件呢?

.net c# wpf microsoft-metro windows-8

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

如何知道双字符串是否往返安全?

我有一个 double 的文本表示,想知道将它往返于 double 和 back 是否安全。如果我也想接受任何类型的输入类型,我怎么知道这一点?或者我怎么知道当用 Double.Parse 解析双字符串时是否有任何精度丢失?或者我如何 ToString a double 以匹配与另一个双字符串相同的格式?对这些问题中的任何一个的回答将是我认为的解决方案。

c# double parsing double-precision

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

XML序列化Roslyn SyntaxTree?

我正在寻找将C#转换为XML并再次反序列化回C#的选项.有人知道任何现有的解决方案吗?我假设Roslyn SyntaxTree不是Xml可序列化的.我还假设为一个syntaxtree制作一个xml-serializer是一项相当大的工作.但也许不是吗?

我为什么需要这个?我想通过xsl到syntaxtree-xml从xml模型生成代码,然后生成c#(或者可能是vb).

我不想直接从XSL生成C#(可以做但我觉得它不是理想的).我需要XSL,因为我还要从XML模型生成XAML和HTML,我也希望能够生成任何需要的代码等等.

我知道T4模板,但现在我正在寻找其他选项,原因有很多.

c# code-generation xml-serialization roslyn

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

更改 DataContext 并绑定 ItemsSource 和 SelectedItem 时,WPF 中 ComboBox 的奇怪行为(或错误?)

我正在尝试调试绑定到 itemssource 和 selecteditem 的组合框中的一个奇怪错误。这让我疯狂。

更改存在组合框的选定选项卡时会出现问题。(实际上只有在更改 ComboBox 的 DataContext 时才会如此)。SelectedItem 绑定有一个自定义验证规则,如果值为 null,则会给出错误。

问题是 wpf 在切换tabitems (DataContext)时调用我的自定义规则并尝试验证 null 值,即使 selecteditem-source 从不为 null。这是个问题。

这是我制作的一个简化案例,显示了相同的错误:

NotNullValidationRule.Validate 中设置断点,看看 WPF 如何尝试将 SelectedItem 验证为 null,即使它不存在于任何视图模型实例中。

更新

经过更多的实验,我发现 TabControl 实际上是无关紧要的。即使有一个简单的 ComboBox 和一个按钮来切换它的 DataContext 我也遇到了完全相同的问题。我正在用新版本替换代码示例。

using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;

namespace ComboBoxValidationBugTest
{
  public partial class MainWindow : Window
  {
    private Test t1, t2;

    public MainWindow()
    {
      InitializeComponent();

      t1 = new Test();
      t1.Items.Add("A");
      t1.Items.Add("B");
      t1.Items.Add("C");
      t1.SelectedItem = "A";

      t2 = new …
Run Code Online (Sandbox Code Playgroud)

c# wpf datacontext xaml combobox

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

如何在单元测试中模拟计算机崩溃?

在 C# .NET Core 应用程序中,我有一些代码通过将数据附加到文件流来保存更改,同时我希望确保不会导致部分写入的字节。

我正在考虑通过在 a 中运行我的代码来模拟 xunit 测试中的崩溃Task,然后随机杀死它Task以查看它的行为如何。但Task没有任何终止开关,我不能CancellationToken在这里真正使用 s 。线程曾经有Abort,但我在.NET Core 中找不到它。我猜他们把它删除了。您可以建议在 xunit 中使用的任何其他选项吗?当然,我可以在单独的进程中运行代码,但我正在寻找一些更简单的方法来执行此操作。

我读到附加在缓冲区长度上是原子的,所以如果我有足够大的缓冲区用于事务,我想我会安全吗?但我也想在各种条件下对此进行测试。

更新

我将标题更改为不包括电源故障情况,只是随机崩溃。

另外,如果由于写入不是评论中指出的原子性而无法避免这种情况,那么在处理追加时如何使写入更安全有什么建议吗?如果我(过度)编写整个文件,我可以单独编写它,然后在完成后替换旧的文件(就像 MS Office 应用程序和其他应用程序一样),但是当附加到文件时,我想它会变得更加复杂。我可以单独写入,然后以某种方式自动连接两个文件段吗?

更新2

如果有人想知道的话,我现在至少已经解决了如何真正进行原子追加。我只是像往常一样写入字节,当事务完成时,我将位置指针更新到事务的最后一个字节所在的位置。我会忽略该位置之后的任何字节。似乎是最好的选择。但这不是真正的问题,真正的问题是如何在 xunit 测试中模拟随机崩溃。

.net c# filesystems asp.net-core

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

所有 docker swarm 实例都可以在同一台机器上运行吗?

我有几个 Docker swarm 问题(抱歉没有把它们分开,但它们都密切相关):

  • 群中的所有实例都必须在不同的机器上运行还是它们都可以在同一台机器上运行?(如果硬件数量有限,只想尝试群模式)
  • 我是否必须运行 swarm 模式才能在实例之间进行通信?
  • swarm 模式与正常运行多个容器之间的主要区别是什么?
  • 容器实例之间的通信选项有哪些?(在群体和常规模式下)http?命名管道?其他?
  • 如果在同一台机器上的容器之间使用 http 通信,它是否与命名管道的速度大致相似?
  • Docker 中是否有对消息总线或类似的内置支持?
  • Docker 中是否支持任何共识协议?
  • 是否有用于设计、管理、测试和/或调试 Docker 群的 GUI?
  • 容器可以列出其他容器,停止/重启一些容器并启动新容器吗?(能够作为其他容器的管理器)
  • 容器是否可以访问操作系统功能(在我的情况下为 Linux)以配置例如反向代理或 WAN 上的端口转发?

背景:我想弄清楚的是我应该如何使用 Docker 构建微服务网格。容器将运行 .NET Core。我不太热衷于过分依赖 Docker,因为它可能不会在几年内成为首选技术。我可以/应该用 Docker 做什么以及我可以/应该在容器内做什么。这就是我想弄清楚的。

docker docker-swarm asp.net-core-webapi

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

标准值类型作为 DDD 中的 ValueObjects?

在对具有实体和值对象的域进行建模时,将“基本”值类型与定义好的值对象一起生成是否有意义?

例如,我可以有一个值对象 EmailAddress 或 ProductName。但是仅将 String 作为值对象呢?它是否出于任何充分的理由违反了任何已知的原则?我真正想知道的是,我是否应该/可以将所有可能的属性值定义为值对象,包括 string、bool、int 等。这是错误的还是只是做得很远?不知何故,我觉得我更喜欢真正明确地表达任何具有某种价值的“事物”,而不是留下任何可以解释的东西。你怎么认为?大师们对此有何看法?


我偶然发现的一个参考

用适当的值对象替换常见的原语(例如字符串)通常是个好主意。虽然我可以将电话号码表示为字符串,但转换为电话号码对象会使变量和参数更加明确(在语言支持时进行类型检查)、验证的自然焦点,并避免不适用的行为(例如对整数 ID 号)。

domain-driven-design value-objects

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

DDD 中服务的正确与错误

如果我错了,请纠正我(并添加您认为正确的其他内容):

应用服务...

  • 域的(公共前端)API
  • 负责加载和保存聚合
  • 可以访问存储库和其他基础设施服务
  • 不是域通用语言的一部分
  • 应该/可以是域顶部的一个非常薄的层(主要处理聚合的加载/保存并将其余部分委托给域)
  • 可以包含纯读操作

域服务...

  • 域的“真实”API
  • 包含领域逻辑
  • 仅适用于域对象(不适用于存储库和电子邮件发送者服务等基础设施服务)
  • 通常包含编排不同聚合的代码
  • 是域通用语言的一部分
  • 可以依赖其他域服务
  • 仅包含修改操作

domain-driven-design

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