gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 04:19:23 25 4
gpt4 key购买 nike

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

我有一个名为 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com