我正处于 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) 我有三个功能.一个是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()函数.这段代码出了什么问题?
有没有人成功实现或找到一个插件,允许 MapBox API 在考虑地球曲线的同时在地图上的两点之间绘制最短的直线?谷歌地图已经有这个,请参阅此链接:
https://developers.google.com/maps/documentation/javascript/examples/geometry-headings?hl=nl
尝试拖动标记。我不知道在墨卡托地图上以这种方式计算路线的官方术语是什么,我将尽快编辑这个问题的标题。
我第一次使用TypeScript.我正在使用带有更新4的Visual Studio 2013,带有更新4的Web Essentials,并从Microsoft的网站获得最新版本的TypeScript.但是,遵循本教程对我不起作用:保存TS文件时,它会自动编译到我输入的代码右侧屏幕上的JavaScript,并在文件夹中创建一个JS文件.但是,此文件不会自动添加到项目中.如何设置Visual Studio 2013以自动将生成的JS文件添加到项目中?
我正在使用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方法?
我正在尝试以非 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 并成功使用我的应用程序。当我使用此文件将其部署到 …
鉴于C#enum:
public enum options: byte
{
yes = 0,
no = 22,
maybe = 62,
foscho = 42
}
Run Code Online (Sandbox Code Playgroud)
如果给出字节62,你如何检索字符串'maybe'?
我有一条二次曲线,我想在其末端画一个箭头。我有这个代码:
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)我有两个 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) 我有这些课程:
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或其他),该字段将始终是一个具有两个属性的对象,Something和Else。
我的挑战:给定任何类似于 Foo 的对象(具有一个包含两个属性的 Field),获取这两个属性的值。鉴于这种方法:
public void DoStuff(object myObject)
{
var asdf = myObject.GetType().GetFields().First();
}
Run Code Online (Sandbox Code Playgroud)
我可以获得 Bar 的 FieldInfo。我正在寻找的是值Something和Else。这些属性的名称永远不会改变。无论字段的类型是什么,它总会有两个命名的属性,Something并且Else它们的类型相同。
遗憾的是,我的问题涉及自动生成的代码,并且没有我可以轻松使用的共享接口或基本类型。
c# ×5
javascript ×2
ajax ×1
asp.net ×1
azure ×1
canvas ×1
html ×1
jquery ×1
kubernetes ×1
leaflet ×1
linq ×1
mapbox ×1
mediatr ×1
mercator ×1
typescript ×1