我正在尝试打包一些参数对象以发送到 Azure Functions HttpTrigger 函数。包的一部分是 Cosmos DB 操作所需的 RequestOptions 对象。应该很简单,在函数端序列化对象和反序列化。问题是 JsonConvert 不会序列化 RequestOptions 对象的 PartitionKey 对象。班级是密封的。知道怎么做吗?我的代码是一个简单的测试。创建一个对象添加一个分区键。序列化它。反序列化它并检查 PartitionKey 的值。它始终为空。我一直无法找到答案。这似乎是 RequestOptions 类中的一个可能的错误,阻止了 JsonConvert 序列化。
public static void Main(string[] args)
{
var partitionKeyValue = "39393939"; // Some partition key in Cosmos DB collection
var requestOptions = new RequestOptions
{
PartitionKey = new PartitionKey(partitionKeyValue)
};
var data = JsonConvert.SerializeObject(requestOptions);
// send data to Azure Functions
var requestOptions1 = JsonConvert.DeserializeObject<RequestOptions>(data);
}
我正在使用 VS 调试器来检查这些值。我知道我可以使用 PartitionKey,因为我可以直接在 Azure Functions 函数中对其进行编码,并且代码有效。所以问题在于为分区键生成 NULL 的序列化。如果不能序列化,那有什么意义呢?