小编Den*_*aub的帖子

Groovy Shell警告"无法打开/创建prefs根节点......"

我试图groovysh在Windows 8上打开Groovy Shell()并得到以下输出:

java.util.prefs.WindowsPreferences <init>
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs 
at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.
Run Code Online (Sandbox Code Playgroud)

打印完上述消息后,shell按预期启动.

windows groovy groovyshell

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

Linq:GroupBy,Sum和Count

我有一系列产品

public class Product {

   public Product() { }

   public string ProductCode {get; set;}
   public decimal Price {get; set; }
   public string Name {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

现在,我想根据产品代码对集合进行分组,并返回一个对象,其中包含每个代码的名称,数量或产品以及每个产品的总价格.

public class ResultLine{

   public ResultLine() { }

   public string ProductName {get; set;}
   public string Price {get; set; }
   public string Quantity {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

所以我使用GroupBy按ProductCode进行分组,然后计算总和并计算每个产品代码的记录数.

这是我到目前为止:

List<Product> Lines = LoadProducts();    
List<ResultLine> result = Lines
                .GroupBy(l => l.ProductCode)
                .SelectMany(cl => cl.Select(
                    csLine => new ResultLine
                    {
                        ProductName =csLine.Name,
                        Quantity = cl.Count().ToString(),
                        Price = cl.Sum(c …
Run Code Online (Sandbox Code Playgroud)

.net c# linq

112
推荐指数
3
解决办法
25万
查看次数

typeof和is关键字有什么区别?

这两者之间的确切区别是什么?

// When calling this method with GetByType<MyClass>()

public bool GetByType<T>() {
    // this returns true:
    return typeof(T).Equals(typeof(MyClass));

    // this returns false:
    return typeof(T) is MyClass;
}
Run Code Online (Sandbox Code Playgroud)

c# generics types

42
推荐指数
6
解决办法
4051
查看次数

CQRS中命令处理程序,聚合,存储库和事件存储之间的关系

我想了解基于CQRS的系统中命令处理程序,聚合,存储库和事件存储之间关系的一些细节.

到目前为止我所理解的:

  • 命令处理程序从总线接收命令.他们负责从存储库加载适当的聚合并调用聚合上的域逻辑.完成后,他们从总线上删除命令.
  • 聚合提供行为和内部状态.国家永远不公开.改变状态的唯一方法是使用行为.模拟此行为的方法从命令的属性创建事件,并将这些事件应用于聚合,聚合又调用事件处理程序,相应地设置内部状态.
  • 存储库只允许在给定ID上加载聚合,并添加新聚合.基本上,存储库将域连接到事件存储.
  • 事件存储,最后但并非最不重要,负责将事件存储到数据库(或任何使用的存储),并将这些事件重新加载为所谓的事件流.

到现在为止还挺好.现在有一些我还没有得到的问题:

  • 如果命令处理程序要在现有聚合上调用行为,那么一切都很简单.命令处理程序获取对存储库的引用,调用其loadById方法并返回聚合.但是,当没有聚合时,命令处理程序会做什么,但是应该创建一个?根据我的理解,聚合应该稍后使用事件重建.这意味着聚合的创建是在回复fooCreated事件时完成的.但是为了能够存储任何事件(包括fooCreated),我需要一个聚合.所以这对我来说就像鸡蛋和鸡蛋一样:我不能在没有事件的情况下创建聚合,但是应该创建事件的唯一组件是聚合.所以基本上归结为:我如何创建新的聚合,谁做了什么?
  • 当聚合触发事件时,内部事件处理程序会响应它(通常通过应用方法调用)并更改聚合的状态.这个事件如何移交给存储库?谁发起了"请将新事件发送到存储库/事件存储"动作?聚合本身?通过观察聚合来存储库?还有谁订阅了内部活动?...?
  • 最后但并非最不重要的是,我有一个问题正确理解事件流的概念:在我的想象中,它只是一个有序的事件列表.重要的是它是"有序的".这是正确的吗?

events domain-driven-design cqrs

35
推荐指数
2
解决办法
6388
查看次数

如何禁用网页上的文本选择

我正在尝试使网页非常原生.如何删除选择,选择网页中的所有属性?

html javascript css

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

将参数传递给ajax onreadystatechange回调?

什么是普通的纯javascript(即不是JQuery)将参数传递给匿名onreadystatechange回调的方法?

例如:

function doRequest(){
    /* Get an XMLHttpRequest in a platform independent way */    
    var xhttp = getXmlHttpRequestObject(); 

    var msg="show this message when done"; /* another variable to pass into callback */

     /* How do I pass 'msg' and 'xhttp' into this anonymous function as locals
       named 'x' and 'm'??? */
    xhttp.onreadychangestate=function(x,m)
    {
       if( x.readyState == 4 )
       {
           alert(m);
       }
    }
    /* do the open() and send() calls here.... */
}
Run Code Online (Sandbox Code Playgroud)

javascript ajax

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

如何将表格行固定在顶部

我有一个表,而元素,只有TD元素的存在.有没有办法让我的第一行固定(标签).桌子是这样的

<table>
  <tr>
    <td>Name:</td>
    <td>Age:</td>
  </tr>
  <tr>
    <td>John</td>
    <td>20</td>
  </tr>
  <tr>
    ......
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

我想要将名称和年龄字段固定为第一行.因此在滚动期间标签不会消失.

html css

10
推荐指数
4
解决办法
8万
查看次数

如何向MessageBox添加扩展方法

这是可能的?

基于另一个例子,如LabelExtesios,StringExtensions等我写了这样的:

namespace MessageBoxExtensions
{

    public static class MessageBoxExtensionsClass
    {
        public static void Foo()
        {

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后:

using MessageBoxExtensions;
// ... 

MessageBox.Foo();
Run Code Online (Sandbox Code Playgroud)

gin错误:MessageBox.Foo();

'System.Windows.Forms.MessageBox' does not contain a definition for 'Foo'
Run Code Online (Sandbox Code Playgroud)

.net c# extension-methods

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

触发CQRS中其他域更改的域事件

在我看到的所有CQRS示例中,域事件触发了对读取模型的更新,但没有其他任何内容.但是,当您希望域事件在域中引起其他更改时呢?

例如,假设您有以下要求:

  • 单击"关闭帐户"按钮时,关闭该帐户
  • 当帐户被还清时,关闭帐户
  • 帐户关闭时,将帐户所有者标记为"特殊"

处理这个问题的最佳方法是什么?

  1. 使Account.Close()创建一个AccountClosed事件,并将所有者标记为"特殊"
  2. 创建一个AccountClosed处理程序,将所有者标记为"特殊"
  3. 创建一个AccountClosed处理程序,提交MarkOwnerAsSpecial命令
  4. 使关闭帐户的命令处理程序也将帐户所有者标记为"特殊"

domain-driven-design cqrs domain-events

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

如何在客户端应用程序中订阅 AWS Event Bus 事件

如何从客户端应用程序(例如 NodeJS 应用程序、Angular 客户端或移动客户端应用程序)订阅 AWS Event Bus 事件?

2020 年 12 月,来自 AWS 营销部门的一封电子邮件介绍了使用事件驱动架构的优势。按照文档和教程,很快我就陷入了无法找到从客户端应用程序订阅此事件的方法的困境。

该电子邮件指出:

关注事件驱动架构的 4 个理由

您是否希望在没有延迟和依赖性的情况下扩展和构建强大的应用程序?我们详细介绍了事件驱动架构的基础知识、它们的工作原理,并向您展示了入门方法。了解事件驱动架构如何帮助您:

  • 独立扩展和失败 - 不再有依赖关系
  • 敏捷开发 -无需自定义轮询代码
  • 轻松审核 - 使用事件路由器定义策略
  • 削减成本 - 停止支付连续投票费用

令人失望的是,没有任何库示例可以集成到客户端代码中来订阅这些事件。谷歌搜索不会返回任何重要结果,节点当前唯一的库:@aws-sdk/client-eventbridge-node仅公开发送和销毁方法。

amazon-web-services event-bus aws-sdk aws-event-bridge

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