小编yes*_*man的帖子

依赖注入和 Mediatr 与 Azure Functions 结合使用是否效率低下?

我正处于 Azure 之旅的早期阶段。我理解函数的方式是,它们是一种无服务器解决方案,仅在实际需要时运行。在执行了他们的逻辑之后,他们再次“关闭”。与应用服务之类的东西相比,即使没有请求,它也始终在运行,这更便宜。

我目前的情况:我有一个采用 DDD 设计的解决方案,类似于 Microsoft 的 eshoponcontainers 解决方案。我有一个 webapi 项目,只有超薄控制器,只需将输入传递给 Mediatr,Mediatr 将其传递给不同的项目以进行验证和业务逻辑。我所有的控制器方法如下所示:

[HttpGet]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
public async Task<IActionResult> GetById(string id)
{
    // Mediator instantiated via DI in the controller constructor
    var result = await Mediator.Send(new GetByIdQuery { Id = id });
    return Ok(result);
}
Run Code Online (Sandbox Code Playgroud)

对我来说,删除此 webapi 项目并将其替换为 Azure Functions 项目很简单,该项目也从 HTTP 触发器获取输入并将其传递给 Mediatr。我的依赖项注入内容是在另一个项目中设置的,独立于 webapi,因此也可以轻松插入到我的 Azure Functions 项目中。我所有的功能都是这样的:

public class GetId
{
    private readonly IMediator _mediator;

    public GetId(IMediator mediator)
    {
        _mediator = mediator;
    }

    [FunctionName("GetById")]
    public async Task<IActionResult> Run( …
Run Code Online (Sandbox Code Playgroud)

c# azure mediatr azure-functions

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

jQuery $ .when()没有按预期工作

我有三个功能.一个是AJAX调用,一个是给这个AJAX函数的回调函数,最后一个是一个完全独立的函数,等待AJAX​​函数完成.第三个函数必须完全独立于AJAX函数,它不能作为参数传递给AJAX函数.我的代码:

doAjaxStuff: function(callbackFunction){
     $.ajax(
          // do AJAX call
          // With the AJAX data, create HTML div elements 
          callbackFunction();
     )
}

callMeMaybe: function(data){
     //do stuff with the return data from the AJAX call
}

patientFunction: function(){
    $.when(this.doAjaxStuff).done(function(){
         alert("doAjaxStuff() has finished!");
         // do stuff to the created HTML div elements.
    });
}
Run Code Online (Sandbox Code Playgroud)

但是我从未收到警告信息.成功执行AJAX调用和回调函数,但永远不会触发$ .when()函数.这段代码出了什么问题?

javascript ajax jquery

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

Leaflet 和 MapBox API - 遵循地球形状的曲线

有没有人成功实现或找到一个插件,允许 MapBox API 在考虑地球曲线的同时在地图上的两点之间绘制最短的直线?谷歌地图已经有这个,请参阅此链接:

https://developers.google.com/maps/documentation/javascript/examples/geometry-headings?hl=nl

尝试拖动标记。我不知道在墨卡托地图上以这种方式计算路线的官方术语是什么,我将尽快编辑这个问题的标题。

javascript mercator leaflet mapbox

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

VS2013不会自动将从Typescript生成的Javascript添加到项目中

我第一次使用TypeScript.我正在使用带有更新4的Visual Studio 2013,带有更新4的Web Essentials,并从Microsoft的网站获得最新版本的TypeScript.但是,遵循本教程对我不起作用:保存TS文件时,它会自动编译到我输入的代码右侧屏幕上的JavaScript,并在文件夹中创建一个JS文件.但是,此文件不会自动添加到项目中.如何设置Visual Studio 2013以自动将生成的JS文件添加到项目中?

typescript web-essentials visual-studio-2013

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

将lambda参数传递给include语句

我正在使用System.Data.Entity命名空间,所以我可以将lambda表达式传递给Linq Include方法.

public ICollection<MyEntity> FindAll()
    {
        using (var ctx = new MyEntityContext())
        {
            return ctx.MyEntity.Include(x => x.SomeLazyLoadedValue).ToList();
        }
    }
Run Code Online (Sandbox Code Playgroud)

当我在一个不同的方法中使用Where语句时,我可以像这样传递一个参数:

public ICollection<MyEntity> FindAllBy(Func<MyEntity, bool> criteria)
    {
        using (var ctx = new MyEntityContext())
        {
            return ctx.MyEntity.Where(criteria).ToList();
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是,在Include中尝试相同的操作不起作用:

public ICollection<MyEntity> FindAll(Func<MyEntity, bool> criteria)
    {
        using (var ctx = new MyEntityContext())
        {
            return ctx.MyEntity.Include(criteria).ToList();
        }
    }
Run Code Online (Sandbox Code Playgroud)

如果你试试这个,Visual Studio会抱怨它

Cannot convert from 'System.Func<MyEntity, bool>' to 'string'
Run Code Online (Sandbox Code Playgroud)

如何将lambda传递给Include方法?

c# linq entity-framework

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

如何以非 root 用户身份在 Kubernetes 中运行 ASP.Net Core 容器?

我正在尝试以非 root 用户身份在 Kubernetes 上运行 ASP.Net docker 容器。我有这个 dockerfile:

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 8443

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["MyProgram.API/MyProgram.API.csproj", "MyProgram.API/"]
COPY ["MyProgram.Services/MyProgram.Services.csproj", "MyProgram.Services/"]
COPY ["MyProgram.Core/MyProgram.Core.csproj", "MyProgram.Core/"]
COPY ["MyProgram.Data/MyProgram.Data.csproj", "MyProgram.Data/"]
RUN dotnet restore "MyProgram.API/MyProgram.API.csproj"
COPY . .
WORKDIR "/src/MyProgram.API"
RUN dotnet build "MyProgram.API.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "MyProgram.API.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MyProgram.API.dll"]
Run Code Online (Sandbox Code Playgroud)

当我在本地运行它时,我可以转到 https://localhost:8443 并成功使用我的应用程序。当我使用此文件将其部署到 …

asp.net kubernetes

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

C# - 如何在具有属性的枚举中找到键值?

鉴于C#enum:

public enum options: byte
{
    yes = 0,
    no = 22,
    maybe = 62,
    foscho = 42
}
Run Code Online (Sandbox Code Playgroud)

如果给出字节62,你如何检索字符串'maybe'?

c#

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

在 HTML5 画布二次曲线上绘制箭头

我有一条二次曲线,我想在其末端画一个箭头。我有这个代码:

http://jsfiddle.net/ju2jh84d/3/

var ctx = document.getElementById('arrowCanvas').getContext('2d');

var startPointX = 55;
var startPointY = 50;
var endPointX = 108;
var endPointY = 118;
ctx.strokeStyle = "rgb(0,0,255)";
ctx.lineWidth = 3;
var x = (startPointX + endPointX) / 2;
var y = (startPointY + endPointY) / 2;
var le = (endPointY - endPointY) / (startPointX - endPointX);
var angle = Math.atan(le);
var sx = Math.pow((startPointX - endPointX), 2);
var sy = Math.pow((endPointY - endPointY), 2);
var d = Math.sqrt(sx + sy) / 2; …
Run Code Online (Sandbox Code Playgroud)

html canvas

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

解密用私钥签名的 byte[]

我有两个 XML 文件,其中包含由 RSACryptoServiceProvider 类生成的私钥和公钥。我已经将一个随机字符串变成了一个字节数组,并使用私钥对其进行了加密。但是如何使用公钥再次解密 byte[] 呢?这是我到目前为止所拥有的:

    class Program
    {
        static void Main(string[] args)
        {
            RSACryptoServiceProvider encryptor = new RSACryptoServiceProvider();
            encryptor.FromXmlString(GetPrivateKey());


            string unencryptedString = "This string could only have been send by me.";

            byte[] unencryptedByteArray = Encoding.Unicode.GetBytes(unencryptedString);

            byte[] encryptedByteArray = encryptor.SignData(unencryptedByteArray, new SHA1CryptoServiceProvider());

            byte[] decryptedByteArray; //how do I decrypt the array again?

            string decryptedString = System.Text.Encoding.Unicode.GetString(decryptedByteArray);

            Console.WriteLine(decryptedString);

            Console.ReadKey();
        }

        private static string GetPrivateKey()
        {
            using (TextReader reader = new StreamReader(@"path to private key file generated by the ToXmlString method"))
            { …
Run Code Online (Sandbox Code Playgroud)

c#

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

使用反射从字段中获取属性

我有这些课程:

public class Foo
{
    public Bar bar;
}

public class Bar
{
    public List<int> Something { get; set; }
    public string Else { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有很多类似的课程Foo。它们都只包含一个字段。Bar在我的例子中,这个字段每次都是不同类型的对象,它不必是 type Bar。无论它是什么对象(Bar或其他),该字段将始终是一个具有两个属性的对象,SomethingElse

我的挑战:给定任何类似于 Foo 的对象(具有一个包含两个属性的 Field),获取这两个属性的值。鉴于这种方法:

public void DoStuff(object myObject)
{
    var asdf = myObject.GetType().GetFields().First();
}
Run Code Online (Sandbox Code Playgroud)

我可以获得 Bar 的 FieldInfo。我正在寻找的是值SomethingElse。这些属性的名称永远不会改变。无论字段的类型是什么,它总会有两个命名的属性,Something并且Else它们的类型相同。

遗憾的是,我的问题涉及自动生成的代码,并且没有我可以轻松使用的共享接口或基本类型。

c#

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