小编Moh*_*mad的帖子

为什么DateTime.Now和DateTime.UtcNow不是我当前的本地日期时间?

我们使用DateTime.Now,但时间不等于我们的服务器时间!

当我运行我的项目时,这些是DateTime属性值:

DateTime.Now = {15/14/04 05:20:18 AM}
DateTime.UtcNow = {15/14/04 12:20:18 PM}
Run Code Online (Sandbox Code Playgroud)

但我目前的本地系统时间是:

15/14/04 04:50:18 AM
Run Code Online (Sandbox Code Playgroud)

我的时区是德黑兰(UTC + 03:30).

这是我第一次看到这种行为!为什么不DateTime.Now等于我的电脑时间?

在此输入图像描述

c# asp.net datetime visual-studio

18
推荐指数
2
解决办法
8990
查看次数

尽管 InProcess 模式的速度更快,为什么 DotNet Core 中的 Kestrel 却诞生了?

我读了里克·斯特拉尔写的这篇精彩的文章。据称,微软在 DotNet core 2.2 后决定添加InProcess模式,直接使用 IIS 来处理请求,而不是使用OutOfProcessKestrel Web 服务器处理进程。我们知道,在这种模式下,IIS 被用作反向 Web 服务器代理来获取请求并将其发送给 Kestrel。

  <!-- hostingModel is the new property here -->
  <aspNetCore processPath="dotnet" arguments=".\WebApplication1.dll"    
              stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout"
              hostingModel="InProcess" />
Run Code Online (Sandbox Code Playgroud)

然后Rick Strahl在他的文章中比较了InProcess模式和OutOfProcess模式,得到的结果是直接使用IIS而不使用Kestrel(InProcess模式)进程要快得多。(甚至他证明 IIS 使用原始 Kestrel 速度更快)

有了这个结果,我想知道为什么我们还有 Kestrel?只是为了在其他反向 Web 服务器(例如 Apache Nginx 和...)之前使用我们的 DotNet 核心应用程序?或者还有其他一些使用 OutOfProcess 有用的场景?我简单地说为什么我们应该同时使用两者(IIS + Kestrel)

.net-core kestrel-http-server asp.net-core

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

在Android中打开浮动菜单(上下文菜单)?

我创建了一个名为drmenu.xml的新菜单.当我按下菜单按钮时它可以正常工作,但我需要在用户按下按钮时打开上下文菜单.下面的代码按钮只显示吐司.

这是我的xml布局:

 <LinearLayout
        android:id="@+id/MenuCall"
        android:layout_width="90dip"
        android:layout_height="match_parent"
        android:gravity="right|center_vertical" >
        <ImageView
            android:id="@+id/MenuCall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/imageiew6" />
    </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

这是我的java代码:

    final LinearLayout callback_var = (LinearLayout) findViewById(R.id.MenuCall);
    registerForContextMenu(callback_var);
    callback_var.setOnClickListener(new android.view.View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            Toast.makeText(getApplicationContext(), "this is repeated",      Toast.LENGTH_LONG).show();
            openContextMenu(callback_var);
        }
Run Code Online (Sandbox Code Playgroud)

android android-menu android-contextmenu

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

有没有办法通过本地主机中的 Kestrel 运行 .NET Core 发布的 Web 应用程序?

据我所知,根据 Dotnet 核心中的 Microsoft Docs,ConfigureWebHostDefaults使 Kestrel 成为项目内的默认 Web 服务器。

public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            });
Run Code Online (Sandbox Code Playgroud)

因此,我可以Dotnet Run在我的主项目路径(包含 .sln)中使用并直接使用 Kestrel 运行该项目,而无需 IIS Express 并且它会运行(因为我可以使用 VS Express 来执行此操作)。但我想知道有什么方法可以在服务器本地主机中的发布产品(发布后)中做到这一点?我在服务器中成功地使用 IIS 托管了我的项目,并且工作正常,但出于好奇,我Dotnet run在发布根目录中运行,它返回:

欢迎使用.NET Core 3.1!--------------------- SDK版本:3.1.404

遥测 --------- .NET Core 工具收集使用数据,以帮助我们改善您的体验。它由 Microsoft 收集并与社区共享。您可以使用您喜欢的 shell 将 DOTNET_CLI_TELEMETRY_OPTOUT 环境变量设置为“1”或“true”来选择退出遥测。

了解有关 .NET Core CLI 工具遥测的更多信息: https://aka.ms/dotnet-cli-telemetry

---------------- 浏览文档: https: //aka.ms/dotnet-docs报告问题并在 GitHub 上查找源代码: https: //github.com/dotnet/core查找了解新功能: https: //aka.ms/dotnet-whats-new了解已安装的 HTTPS 开发人员证书: https: //aka.ms/aspnet-core-https使用“dotnet …

.net-core asp.net-core

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

为什么.NET Core 5 中的 Program.cs 中没有任何类?

我正在尝试使用 .NET 5 来更新我的信息。所以我开始在这里回顾eShopOnContainers-ServicesAndWebApps项目。

我读过它的旧版本(2.2 和 3.1),这是一个丰富的样本,有很多奇妙的地方。但这里的.NET 5,乍一看,在Program.cs,我看到了很多的方法和属性,没有它我不明白,让我困惑的类。我们如何在 cs 文件中拥有没有类的方法?

c# c#-9.0

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

尽管 String 是引用类型,为什么“==”运算符在 2 个字符串中表现正确?

我们知道 String 是一种引用类型并且是不可变的,所以这样做是合理的。它表示存储在 Stack 中的字符串的地址及其在 Heap 部分内存中的内容存储。另一方面,我们知道“==”操作只是比较堆栈值。因此,例如,我们有以下代码,如我们在理论上所期望的那样比较两个对象。

在 Microsoft Docs 中,我们有:

默认情况下,如果两个非记录引用类型操作数引用同一个对象,则它们是相等的:

   public static void Main()
    {
        var a = new MyClass(1);
        var b = new MyClass(1);
        var c = a;
        Console.WriteLine(a == b);  // output: False
        Console.WriteLine(a == c);  // output: True
    }
Run Code Online (Sandbox Code Playgroud)

但我的问题是为什么在引用类型为“==”的字符串中,操作的行为类似于值类型!我只是对技术原因以及 Dotnet 如何为之而感到好奇,而不仅仅是概念(如这里

string t1 = "test";
string t2 = "test";
bool result = t1 == t2; // output: True
Run Code Online (Sandbox Code Playgroud)

.net c#

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

在 MasstTransit 中发送、发布和请求/响应

最近我尝试在我们的微服务生态系统中使用MassTransit

根据 MassTransit 词汇和文档,我的理解是:

  • 发布:向 1 个或多个订阅者发送消息(发布/订阅模式)以传播消息。
  • Send:用于像发布一样以一劳永逸的方式发送消息,但它仅用于一个接收者。与发布的主要区别在于,在发送中如果您的目的地没有收到消息,它将返回异常。
  • 请求:使用请求/回复模式仅发送消息并在不同的通道中获取响应,以便能够从接收者获取响应值。

现在,我的问题是根据微服务的理念,遵循事件驱动的设计,我们使用Publish将消息(事件)传播到整个生态系统。但这里的Send到底有什么用法(用例)呢?只是为了在接收者不存在时获得异常?

我的下一个问题是,在微服务生态系统中同时使用PublishSendRequests是一种好方法吗?例如发布传播事件、发送命令(即发即忘)以及从目的地获取响应的请求。

----- 更新 我还发现克里斯·帕特森在这里澄清了很多事情。这对我也有很大帮助。

domain-driven-design masstransit event-driven-design microservices

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