小编hal*_*ldo的帖子

无法使用模拟 Lambda 测试工具启动 lambda

我使用 AWS lambda 已有几个月了。我当时正在使用 lambda,最终一切都很好。第二天我回来处理它,但我什至无法让 Visual Studio 使用模拟 Lambda 测试工具启动应用程序。

我最终创建了一个空的 lambda,它只返回输入(AWS 为您提供的标准项目代码作为模板),甚至无法运行。我按下播放按钮启动模拟 Lambda 测试工具,它看起来会运行几秒钟,然后关闭。命令窗口甚至没有弹出。

这是模板项目中的代码。

public string FunctionHandler(string input, ILambdaContext context)
{
    return input?.ToUpper();
}
Run Code Online (Sandbox Code Playgroud)

这就是我在 VS 的输出窗口中得到的所有内容:

目标进程退出,但未引发 CoreCLR 启动事件。确保目标进程配置为使用 .NET Core。如果目标进程不在 .NET Core 上运行,则可能会出现这种情况。程序“[16700] dotnet-lambda-test-tool-2.1.exe:Program Trace”已退​​出,代码为 0 (0x0)。程序“[16700] dotnet-lambda-test-tool-2.1.exe”已退出,代码为-2147450726 (0x8000809a)。

我尝试过重新安装AWS工具包,也尝试过重新安装Visual Studio。这是 VS 2017 和 VS 2019 的问题。我刚刚安装了 2019,看看是否可以解决该问题。任何帮助,将不胜感激。

c# aws-lambda

15
推荐指数
4
解决办法
3万
查看次数

如何在 net 6 和最小 api 中返回内容类型为 json 的 json 字符串?

如果我有一个 json 字符串(例如从文件中读取)并且我的 api 以字符串形式返回,Postman 会将响应视为文本

app.MapGet("/myapi", () =>
{
    var json = File.ReadAllText("file.json");
    return json;  
});
Run Code Online (Sandbox Code Playgroud)

那么如何强制内容类型为 application/json 呢?(请不要使用 Newtonsoft)我能够使用该解决方法,但看起来很丑

app.MapGet("/myapi", () =>
{
    var json = File.ReadAllText("file.json");
    var jo = JsonSerializer.Deserialize<object>(json);
    return Results.Json(jo);
});
Run Code Online (Sandbox Code Playgroud)

谢谢

c# json asp.net-core minimal-apis

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

获取“System.Text.Json.JsonElement”不包含“结果”使用 JsonSerializer.DeserializeAsync 进行解析

我的响应中有 JSON,结构如下

{
   "statusCode": 200,
   "result": {
      "generalInfo": {
         "firstName": "",
         "lastName": ""
      },
      "isError": false      
   },
   "sentDate": "2022-02-06T10:04:06.6853775Z",
}

var response = await _httpClient.PostAsJsonAsync(address, model);
Stream responseBody = await response.Content.ReadAsStreamAsync();

            
Run Code Online (Sandbox Code Playgroud)

来自端点的响应实际上有点复杂,我想只提取特定字段,所以我使用了动态

dynamic data = await JsonSerializer.DeserializeAsync<dynamic>(responseBody)

var dataString = data.ToString();
Run Code Online (Sandbox Code Playgroud)

// 数据字符串是

{"result":{"generalInfo":{"firstName":"John","lastName":"Doe"},"isError":false}
Run Code Online (Sandbox Code Playgroud)

如果我尝试访问这样的动态属性

var firstName = data.result.generalInfo.firstName;
var lastName = data.result.generalInfo.lastName;
var isErr = data.IsError;
Run Code Online (Sandbox Code Playgroud)

我遇到异常

“System.Text.Json.JsonElement”不包含“结果”的定义

.net c# system.text.json

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

.NET 6 最小 API 和多部分/表单数据

使用 .NET 6 Minimal API,我尝试multipart/form-data在 POST 方法中进行处理。但是,使用以下代码:

app.MapPost("/tickets", async (IFreshdeskApiService s, [FromForm] CreateTicketDto dto) => await s.Add(dto))
   .Accepts<CreateTicketDto>("multipart/form-data");
Run Code Online (Sandbox Code Playgroud)

我收到 400 错误请求,正文为:

{
    "error": "Expected a supported JSON media type but got \"multipart/form-data; boundary=--------------------------391539519671819893009831\"."
}
Run Code Online (Sandbox Code Playgroud)

我切换到非最小API(即使用app.MapControllers()),但是有什么方法可以在最小API中处理这个问题吗?

rest multipartform-data asp.net-core .net-6.0 minimal-apis

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

Xamarin形式:如何引用父绑定

<ViewCell> 
   <ViewCell.View>
      <Label Text="{Binding ABC}"></Label>
   </ViewCell.View>
</ViewCell>
Run Code Online (Sandbox Code Playgroud)

假设此视单元位于ListView中。如果内容页面与视图模型绑定,那么如何获得对内容页面绑定的引用。当前,“ ABC”正在引用列表中对象的属性,但我想从内容页面的绑定上下文中获取值。

<ffimageloading:CachedImage.GestureRecognizers>
   <TapGestureRecognizer BindingContext="{x:Reference page}" Command="{Binding OnSignInCommand}" CommandParameter="{Binding Model}" />
</ffimageloading:CachedImage.GestureRecognizers>
Run Code Online (Sandbox Code Playgroud)

xaml binding xamarin binding-context

6
推荐指数
3
解决办法
8633
查看次数

Chrome/Android 杀死在后台运行的 websockets

在 20seg - 3 分钟之间振荡一段时间后,Android 中的谷歌浏览器(还有 iPhone)会终止 websocket 连接,具体取决于设备。当应用程序不在前台时,它也无法处理简单的计时器或间隔,就像我在底部附加的示例一样。

我明白这是正常的,为了更新电池的寿命并保护移动设备的资源,但这很糟糕......当用户需要一直连接到套接字并且不丢失与websocket 时只需打开 whatsapp 来回答消息或其他浏览器选项卡,然后返回 webapp 并断开连接。例如,聊天室。

这个问题有什么解决方法吗?可以直接从 chrome 配置的东西,webapp 的特殊权限,这种情况下的某种绕过?这是一个 webapp,添加到 android 的启动屏幕......即使如此,chrome 似乎也没有给它任何特别的优先级,并不断杀死 websocket 并在 webapp 处于后台时拒绝执行 javascript。(屏幕关闭或前台其他应用程序)

我希望我已经解释清楚了,我是 stackoverflow 的新手,我的英语不太好。提前致谢!

例如,一个简单的页面,您可以从您的移动浏览器执行,并看到该时间间隔不会像预期的那样执行 10 秒

<script>
    setInterval(function() {
        var timeNow = new Date().toLocaleTimeString()
        document.body.innerHTML += "<div> " + timeNow + "</div>"    
    }, 10000)
</script>
Run Code Online (Sandbox Code Playgroud)

javascript iphone android google-chrome websocket

6
推荐指数
0
解决办法
1627
查看次数

无法加载文件或程序集 'e_sqlite3

当我调试 UWP 项目时,出现以下错误:

System.IO.FileNotFoundException: '无法加载文件或程序集 'e_sqlite3,Culture=neutral,PublicKeyToken=null'。该系统找不到指定的文件。'

错误发生在这一行: Xamarin.Forms.Forms.Init(e);

从以下代码块:

protected override void OnLaunched(LaunchActivatedEventArgs e)
{
    Frame rootFrame = Window.Current.Content as Frame;

    // Do not repeat app initialization when the Window already has content,
    // just ensure that the window is active
    if (rootFrame == null)
    {
        // Create a Frame to act as the navigation context and navigate to the first page
        rootFrame = new Frame();

        rootFrame.NavigationFailed += OnNavigationFailed;

        Xamarin.Forms.Forms.Init(e);

        if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
        {
            //TODO: Load state from previously …
Run Code Online (Sandbox Code Playgroud)

c# xamarin.forms xamarin.uwp sqlite-net-pcl

5
推荐指数
0
解决办法
1079
查看次数

如何使用 DataAnnotations 检查属性仅匹配字符串数组

我有一个属性:

[MaxLength(3)]
public string State { get; set; }
Run Code Online (Sandbox Code Playgroud)

在指定的属性上State,我只希望它匹配给定的 5 个澳大利亚州: { "VIC", "NSW", "QLD", "SA", "TAS", "WA" }。我如何在这种情况下使用 DataAnnotations?

c# asp.net arrays asp.net-mvc data-annotations

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

System.Text.Json.Serialization 似乎不适用于具有嵌套类的 JSON

如何定义仅使用 System.Text.Json.Serialization 工作的类?

使用 Microsoft 的 Newtonsoft 反序列化新替代方案目前不适用于嵌套类,因为在反序列化 JSON 文件时,所有属性都设置为 null。使用 Newtosonsoft 的 Json property 属性[JsonProperty("Property1")]来维护属性的值。

谢谢!

public class Class1
{
    [JsonProperty("Property1")]
    public string Property1 { get; set; }
}
    
Run Code Online (Sandbox Code Playgroud)

使用 Visual Studio 的粘贴 JSON 到类进行粘贴以创建类:

public class Rootobject
{
    public string Database { get; set; }
    public Configuration Configuration { get; set; }
}

public class Configuration
{
    public Class1 Class1 { get; set; }
    public Class2 Class2 { get; set; }
    public Class3 Class3 { get; …
Run Code Online (Sandbox Code Playgroud)

c# json .net-5 system.text.json blazor-webassembly

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

在 Minimal API NET 6 中接受 x-www-form-urlencoded

我正在尝试将“Content-Type”标头:“application/x-www-form-urlencoded”发送到最小 api,但出现以下错误:

\n
\n

Microsoft.AspNetCore.Http.BadHttpRequestException:需要\n支持的 JSON 媒体类型,但得到“application/x-www-form-urlencoded”。

\n
\n

这是端点:

\n
app.MapPost("/api/formulario/imovel-web/cadastrar",\n            async (LeadRequest request, ILeadService service, ILogService logService, ICorretorMrvRepository corretorMrvRepository) =>\n{\n    request.Origem = "imovelweb";\n\n    try\n    {\n        if (string.IsNullOrEmpty(request.Token))\n        {\n            logService.Error("leads-api", "imovel-web: Acesso n\xc3\xa3o autorizado (Token n\xc3\xa3o encontrado).", Environment.StackTrace, request: request.Serialize());\n\n            return Result.ResponseFailed("Acesso n\xc3\xa3o autorizado (Token n\xc3\xa3o encontrado).");\n        }\n        else\n        {\n            var idParceiro = await corretorMrvRepository.ObterIdParceiro("imovelweb");\n            var origem = string.Empty;\n\n            if (idParceiro != Guid.Empty)\n            {\n\n                var jwt = request.Token;\n                var handler = new JwtSecurityTokenHandler();\n                var data = handler.ReadJwtToken(request.Token);\n\n                var autorizado …
Run Code Online (Sandbox Code Playgroud)

c# .net-6.0 minimal-apis

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