小编dot*_*tep的帖子

策略模式和访客模式有什么区别?

我无法理解这两种设计模式.

你能不能给我一些背景信息或一个例子,这样我就可以得到一个清晰的想法,并能够映射出他们两者之间的差异.

谢谢.

在此输入图像描述

在此输入图像描述

oop design-patterns

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

如何使用中间件删除服务器头?

在ASP.NET Core 1.0中,每个响应都将包含标头Server: Kestrel.我想删除此标头以及其他标头,如X-Power-By使用中间件.

我知道我们可以通过设置以下内容来删除主机配置中的Kestrel标头,但我想使用中间件(实际上当我们有Httpmodule时我们可以这样做,所以我学习同样的事情).我试了一下它没用.

new WebHostBuilder()
    .UseKestrel(c => c.AddServerHeader = false)
Run Code Online (Sandbox Code Playgroud)

试过的代码:

public class HeaderRemoverMiddleware
{
    private readonly RequestDelegate _next;
    public HeaderRemoverMiddleware(RequestDelegate next)
    {
        _next = next;
    }

    public async Task Invoke(HttpContext httpContext)
    {
        httpContext.Response.OnStarting(callback: removeHeaders, state: httpContext);
        await _next.Invoke(httpContext);
    }

    private Task removeHeaders(object context)
    {
        var httpContext = (HttpContext)context;
        if (httpContext.Response.Headers.ContainsKey("Server"))
        {
            httpContext.Response.Headers.Remove("Server");
        }
        return Task.FromResult(0);
    }
}

public static class HeaderRemoverExtensions
{
    public static IApplicationBuilder UseServerHeaderRemover(this IApplicationBuilder builder)
    {
        return builder.UseMiddleware<HeaderRemoverMiddleware>();
    }
}
Run Code Online (Sandbox Code Playgroud)

.net-core asp.net-core asp.net-core-1.0 asp.net-core-middleware

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

具有域驱动设计的存储库模式是否成为反模式?

首先,我想澄清一点,我是Domain Driven Design的新手,我问的是这个问题,因为我读过一些叫做Anemic Domain Model的东西.

大多数时候,我在使用Repository模式时看到了以下内容.

  1. 我们有一个通用存储库
  2. 我们的Model只包含一组公共属性,但它不包含任何方法(因此它根据DDD的定义成为Anemic Domain Model),因为这里的repository类处理该实体或模型的其他进程.

请为我的查询提供有价值的答案.

让我澄清一些事情.

通用存储库是指由Entity存储库实现的通用接口.

我的困惑是关于以下事情

例如:假设我要保存

    public class User
    {
        public int Id { get; set;}
        public string Name { get; set};
    }

    public class UserRepository : IRepository<User>  
    {  
        // All Operation Like Save / Get /  UserEntity (Domain Object)       
    }
Run Code Online (Sandbox Code Playgroud)

所以这是我的User类什么都不做,而只是它有属性和其他操作句柄UserRespository.所以我的用户是Anemic Domain模型.(因为它什么都不具体)

在附图中我认为ProductRepository我的问题是:我的产品类是否是一个贫血模型?

请考虑以下示例图片,以了解我要说的内容.

在此输入图像描述

c# domain-driven-design

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

从构造函数抛出异常以及实例和内存分配会发生什么?

我有这样的课.(这只是一个例子)

    public class NewTest
    {
        public int I { get; set; }
        public NewTest()
        {                
            I = 10;
            throw new ApplicationException("Not Possible");
        }
    }
Run Code Online (Sandbox Code Playgroud)

现在,如果我使用这样的类

 NewTest t = new NewTest();
Run Code Online (Sandbox Code Playgroud)

在上面的行中,作为NewTest构造函数抛出异常变量t永远不会像constuctor之前那样分配任何值,它会抛出异常,但是根据测试以及其他问题(为什么在构造函数中抛出异常导致空引用?)对象被创建.

现在这个对象是在Heap中创建的,但它不包含任何根变量以供参考,所以它是否会为垃圾收集创建问题?或是内存泄漏了什么?


以下示例帮助我清除我的困惑.另一个例子

 namespace ConsoleApplication1
 {
 class Program
 {
    static void Main(string[] args)
    {
        NewMethod();
        System.GC.Collect();
        Console.WriteLine("Completed");
        Console.ReadLine();
    }

    private static void NewMethod()
    {
        Object obj = null;
        try
        {
            Console.WriteLine("Press any key to continue");
            Console.ReadLine();
            NewTest t = new NewTest(out obj);
        }
        catch
        {
            Console.WriteLine("Exception thrown");
        } …
Run Code Online (Sandbox Code Playgroud)

c# garbage-collection

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

连接到远程 docker 主机

我有以下场景。

  1. 二机(物理机)
  2. 一个是在 Windows 安装程序上安装了 Docker 的 Windows 10 和安装了 docker-ce 的 ubuntu 18.04。
  3. 我可以对个人运行命令,这很好。
  4. 我想从 Windows 机器上的 Docker 连接 Ubuntu Docker 主机。因此,Windows 上的 Docker CLI 指向 Ubuntu 主机上的 deamon。

docker docker-machine

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

Add-host 或 extra_host 不适用于 Windows 容器

  • 环境:Windows 版 Docker
  • 容器:Windows容器

在 docker run 命令中,有 --add-host 选项。这不适用于 Windows 容器。

同样,撰写文件中有一个配置选项 extra_host.txt。这也不适用于 Windows 容器。

有什么具体原因,这不适用于 Windows 容器吗?

docker docker-compose docker-for-windows

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

SQL Server 和服务总线的 Azure Functions 依赖关系跟踪到 Application Insights

以前我有 Azure Web App (.net core),它成功地将 SQL Server 和服务总线依赖项跟踪到 Application Insights 中。它无法与 Azure Functions 一起使用。

环境

  • 点网6
  • 点网隔离模式
  • 日志级别默认设置为“信息”。
  • 使用 Azure Functions 消耗计划的 Azure 环境。
  • Application Insights 密钥已配置。

我在前端有 Azure API 管理,后端是 Azure Function,它调用 SQL Server 和服务总线。

  • Api 管理服务对 Azure 函数的依赖性已成功解决,但 Azure 函数对其他组件的依赖性不起作用。

azure azure-application-insights azure-functions .net-6.0

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

SVN多个开发人员同时处理单个文件

实际上我在使用SVN期间已经多次遇到过这个问题.大部分时间我都在使用VSS进行源代码控制,但是在过去的几个月里我一直在使用SVN.

我们在VS 2010中使用乌龟和AnkhSVN.

在我们的团队中有5-6人,其中一些人一次处理同一个文件.现在当有人提交时,我们已经看到其他一些开发人员的变化消失了,有时我们会得到一些版本号.这件事耗费了大量时间,我们必须解决所有冲突.

请提供信息,以便我们避免此类问题.

tortoisesvn ankhsvn visual-studio-2010

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

为什么发布到IIS是ASP.net核心的变化?

当我在Visual Studio 2015 CTP 5下发布时,我不必为应用程序池CLR版本进行设置.

现在对于ASP.net核心应用程序和根据文档(http://docs.asp.net/en/latest/publishing/iis.html),我们必须将应用程序池clr设置为无托管代码.

为什么会这样?

asp.net-core asp.net-core-1.0

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