c# - 将 JSON 对象与 webjobs SDK 和 Azure 队列结合使用

标签 c# azure json.net

只是构建一个示例应用程序来尝试解决一些问题。

我有一个名为 messageClass 的类:

namespace WebJobsSDKSample
{
    public class messageClass
    {
        string name { get; set; }
        string path { get; set; }
    }
}

和一个函数:

namespace WebJobsSDKSample
{
    public class Functions
    {

        public static void ProcessQueueMessage([QueueTrigger("queue")] string message)
        {

            messageClass mess = JsonConvert.DeserializeObject<messageClass>(message);

        }
    }
}

程序的设置如下:

namespace WebJobSDK
{
    class Program
    {
        static void Main(string[] args)
        {
            var config = new JobHostConfiguration();

                config.UseDevelopmentSettings();
            if (config.IsDevelopment)
            {
            }

            config.DashboardConnectionString = "";

            var loggerFactory = new LoggerFactory();

            config.LoggerFactory = loggerFactory
                .AddConsole();

            var host = new JobHost(config);

            host.RunAndBlock();

        }
    }
}

现在,当我运行它时,它可以工作,如果我将消息放入队列中,它就会被拾取。 但它没有被视为 JSON 对象。 如果我将其作为消息放入:

{"path": "此处的路径","name": "此处的名称"}

那么路径和名称字段都为空。 这是函数中调试器中显示的字符串消息: "{\"path\":\"此处路径\",\"name\":\"此处名称\"}"

我也尝试将消息设置为 messageClass 或 Object 类型而不是字符串。

使用Newtonsoft.Json;

谢谢,

最佳答案

您在 pathname 属性上没有任何访问修饰符,因此它们默认是私有(private)的(而省略访问修饰符的类将使其成为内部属性) 。因此,虽然您可以在调试时看到这些值,但 JsonConvert 无法也无法在这些属性上设置值。

将公共(public)访问修饰符添加到属性中,您应该就可以了。

public class messageClass
{
    public string name { get; set; }
    public string path { get; set; }
}

关于c# - 将 JSON 对象与 webjobs SDK 和 Azure 队列结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50515488/

相关文章:

c# - 由于 'AzureWebJobsStorage' 连接字符串未设置或无效,SignalR 触发器被禁用。 Azure.RequestFailedException : Service request failed

c# - ModelState 错误 - Newtonsoft.Json.JsonSerializationException : Cannot populate list type System.Net.TrackingStringDictionary

c# - 更新对象数组

c# - Python 的 hash.digest() 使用什么 c# 等效编码?

c# - 当我从 msbuild 构建解决方案时未构建 Visual Studio 项目

C# MAUI 异步函数适用于 Windows,但不适用于 Android

Azure Arm部署失败,如何查看错误的更多详细信息?

c# - 在单个查询中将数据插入多个表

java - 从 Microsoft Azure 提取 JSON 文档并推送到 Kafka 的最佳方式是什么?

c# - C# 读取两个 Json 文件并合并它们