小编jga*_*fin的帖子

如何避免由于DI容器绑定要求而使BAL依赖于DAL?

我的申请包括三个项目.核心,DAL和BAL.

核心包含域对象(客户,订单,产品).它还包含基本的IRepository接口IRepository<T>.

DAL包含EntityFramework特定的东西.它还包含Concrete Repositories(CustomerRepository,OrderRepository,ProductRepository).我在这里添加了这些具体的存储库,因为它们依赖于DbContext(这是EF特定的)

现在我的BAL应该只依赖于Core而不依赖于DAL.我在这个项目中添加了对NInject的依赖.但是,我仍然需要告诉Ninject它应该将IRepository解析<Customer>为CustomerRepository,这迫使我在这里添加DAL依赖.无论如何避免在我的BAL项目中添加对DAL的依赖?

.net c# ninject

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

正则表达式,提取编号列表(多行)

我得到以下文字:

1. This is a text
where each item can span over multiple lines
2. that I want to
extract each seperate
item from
3. How can I do that?
Run Code Online (Sandbox Code Playgroud)

我在 refiddle 中尝试了这个正则表达式:

/([\d]+\.)(.*)/s
Run Code Online (Sandbox Code Playgroud)

但我不确定它是贪婪的(只返回一个项目)还是它提取了所有项目。但是当我在 C# 中尝试它时,正则表达式不匹配任何东西。

我究竟做错了什么?

更新

它很不错,但没有用,因为\s在 .NET 中似乎不起作用。我可以自己修复行尾(因为它们被剥离了)。但是如何使正则表达式不贪婪?是否可以说类似的话

匹配数字+点,然后取除下一个数字+点之外的所有内容

c# regex

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

为什么我在 Visual Studio 编辑器中看到“可本地化字符串”?

我有以下if声明:

在此输入图像描述

VS告诉我Localizable string: "Select a Unit"

我已经浏览了全球化和本地化 .NET Framework 应用程序,但仍然不清楚本地化实际上是什么。

有人可以解释一下这是什么意思吗?

c# localization visual-studio

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

代码段插件

Visual Studio是否有任何好的代码片段插件?我想要一个可以使用在线代码段(例如snipplr)的插件.查找和上传代码段应该很容易.

c# plugins visual-studio code-snippets

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

WinDbg 替代 !dumpheap 类型?

我从 !dumpheap -stat 得到以下行

000007fee09d6960   441762    835293368 System.String
Run Code Online (Sandbox Code Playgroud)

我很想知道 441 762 字符串的用途。做一个

!dumpheap -type System.String
Run Code Online (Sandbox Code Playgroud)

会列出所有,还是我错了?我怎样才能分析其中的一些?

memory-management windbg sos

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

使用界面时的最佳做法

很多时候,在设计接口时,我会一直遇到相同的情况.这种情况是使用接口的某些实现需要接口中的特定参数而其他实现不需要.

  • 设计界面时的最佳做法是什么?
  • 是否可以使用某些实现接口但不使用所有参数的实现?

或者在这些情况下,我应该只参考一个参数列表(某些结构)并在每个实现中相应地处理该列表?

c# architecture interface-design interface

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

从属性创建枚举

我正在使用自己的实体属性标记我的枚举,用于将枚举映射到案例管理系统中的相应字段.

从枚举值中获取正确的字符串工作正常,但如何从字符串生成枚举?

我开始这样做:

foreach (var fieldInfo in enumType.GetFields())
{
    var attribute = (EntityNameAttribute)fieldInfo
        .GetCustomAttributes(typeof (EntityNameAttribute), false)
        .FirstOrDefault();

    if (attribute == null)
        continue;

    if (attribute.Name != name)
        continue;

    //got a match. But now what?
}
Run Code Online (Sandbox Code Playgroud)

但是我如何从一个领域获得适当的价值呢?我可以用fieldInfo.GetValue吗?如果是这样,我应该使用什么实例?枚举应该被视为静态类型吗?

c# reflection enums

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

在 RavenDb 中使用域模型作为文档?

我正在考虑使用我的域模型 (DDD) 作为 RavenDb 中的文档。这是一个坏主意吗?

如果没有,我正在使用TodoListId包含id 的 id 类(如)(在乌鸦的情况下todolists/3等)。我如何告诉 Raven/JSON.NET 将它们用作 ID?

public class TodoListId
{
    public class TodoListId(string id)
    {
        //validate the id and set internal var
    }

    //override ToString to return the id
}

public class TodoList
{
    public TodoList(TodoListId id)
    {}

    public TodoListId Id{get;set;}
    public TodoListId Parent {get;set;}
    public string SomeBasicProperty {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

此外,当我使用 nhibernate 时,我通常将所有 setter 设置为 protected 以确保正确使用域模型。RavenDb 客户端也可以这样做吗?或者不会序列化工作呢?

todoList.Id.ToString()会回来todolists/1

c# domain-driven-design nosql ravendb

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

检查电脑是否开机

我写了一个简单的 php 页面,它也向我的几台运行 Windows 7 的计算机发送唤醒网络数据包。

如何检查计算机是否已开机(假设该位置的互联网工作正常)?

我可以在加载页面时如何 ping 计算机以检查响应吗?

附加信息:这些计算机都位于不同的位置,在那里它们为 IP 设置了动态 dns,并且都在与其他计算机一起位于路由器后面。

php windows remote-access remote-management

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

Count(*) 与 sys.partitions 中的行不同

我使用以下查询来获取有关数据库中所有表的信息:

SELECT 
    t.NAME AS TableName,
    i.name as indexName,
    sum(p.rows) as RowCounts,
    sum(a.total_pages) as TotalPages, 
    sum(a.used_pages) as UsedPages, 
    sum(a.data_pages) as DataPages,
    (sum(a.total_pages) * 8) / 1024 as TotalSpaceMB, 
    (sum(a.used_pages) * 8) / 1024 as UsedSpaceMB, 
    (sum(a.data_pages) * 8) / 1024 as DataSpaceMB
FROM 
    sys.tables t
INNER JOIN      
    sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN 
    sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN 
    sys.allocation_units a ON p.partition_id = a.container_id
WHERE 
    t.NAME NOT LIKE 'dt%' AND
    i.OBJECT_ID > …
Run Code Online (Sandbox Code Playgroud)

sql sql-server database-schema

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