小编Iva*_*kin的帖子

为Facebook页面生成"永不过期"的访问令牌

我已经设法通过API(C#)发布到Facebook页面,但是当页面管理员注销时,会发生以下错误:

"(OAuthException - #190)验证访问令牌时出错:会话无效,因为用户已注销."

如何生成永不过期的访问令牌?

我需要一个无法打开Facebook登录对话框的解决方案.

facebook

56
推荐指数
3
解决办法
9万
查看次数

类型化 HttpClient 与 IHttpClientFactory

以下两种设置 HttpClient 的场景有什么区别吗?

我应该选择其中一种而不是另一种吗?

键入的客户端:

public class CatalogService 
{
    private readonly HttpClient _httpClient;
    
    public CatalogService(HttpClient httpClient) {
        _httpClient = httpClient;
    }
    
    public async Task<string> Get() {
        var response = await _httpClient.GetAsync();
        ....
    }
    
    public async Task Post() {
        var response = await _httpClient.PostAsync();
        ...
    }
}
// Startup.cs
//Add http client services at ConfigureServices(IServiceCollection services)
services.AddHttpClient<ICatalogService, CatalogService>();
Run Code Online (Sandbox Code Playgroud)

IHttpClientFactory:

public class CatalogService 
{
    private readonly IHttpClientFactory _factory;
    
    public CatalogService(IHttpClientFactory factory) {
        _factory = factory;
    }
    
    public async Task<string> Get() {
        var …
Run Code Online (Sandbox Code Playgroud)

c# async-await dotnet-httpclient asp.net-core httpclientfactory

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

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

将实体保存到数据库中的设计模式

我有一个类似于下面的类(C#):

public class Product {

    public int ID {get;set;}
    public string Name {get;set;}
    public double Price {get;set;}

    public void Save() {
        string sql = "INSERT INTO Product.....";
        Database.Execute(sql);
    }

    public void Delete() {
        string sql = "DELETE Product WHERE.....";
        Database.Execute(sql);
    }
}
Run Code Online (Sandbox Code Playgroud)

我主要担心的是上面的代码违反了 SOLID 原则,因为它负责创建和删除自己。

也许这些 Save 和 Delete 方法应该放在 Product 实体之外的某个地方(也许是 Factory/Repository?)。

c# design-patterns solid-principles

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

如何为 Umbraco 中的下拉列表分配默认值?

我已经根据内置下拉列表创建了自定义数据类型,但无法弄清楚如何为列表指定默认值。默认值始终为空:

在此处输入图片说明

umbraco umbraco7

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

AWS Step Function:检查是否为空

Step Function 定义如下:

{
  "StartAt": "Decision_Maker",
  "States": {
    "Decision_Maker":{
      "Type": "Choice",
      "Choices": [
        {
          "Variable": "$.body.MyData",
          "StringEquals": "null", //that doesn't work :(
          "Next": "Run_Task1"
        }],
        "Default": "Run_Task2"
    },
    "Run_Task1": {
      "Type": "Task",
      "Resource": "url_1",
      "Next": "Run_Task2"
    },
    "Run_Task2": {
      "Type": "Task",
      "Resource": "url_2",
      "End": true
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

基本上它是两个任务之间的选择。输入数据是这样的:

{
    "body": {
        "prop1": "value1",
        "myData": {
            "otherProp": "value"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是有时 JSON 中没有 myData。所以输入可能是这样的:

{
    "body": {
        "prop1": "value1",
        "myData": null
    }
}
Run Code Online (Sandbox Code Playgroud)

如何检查 myData 是否为空?

amazon-web-services aws-lambda aws-step-functions

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

两个应用程序共享一个Redis.如何防止缓存冲突?

两个不同版本的应用程序(调试和发布)共享相同的Redis实例.Debug和Release都具有相同的源代码,因此存储在Redis中的缓存密钥相同.

在此输入图像描述

因此,当Debug redis.StringSet(key1, value1)发布时,Release很容易覆盖key1或读取不正确的值(因为它应该有自己的值key1).

有没有办法避免这种干扰?

redis stackexchange.redis

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