gpt4 book ai didi

c# - 从 Byte[] 中查找未序列化的类型

转载 作者:行者123 更新时间:2023-11-30 22:26:18 26 4
gpt4 key购买 nike

我正在从 AD/LDAP 导入一些数据,但返回的二进制属性有一些问题 byte[]ResultPropertyValueCollection对象。

最简单的示例是 objectGUID 属性。我需要在适当的 GUID 对象中使用它,而不是 byte[] .我可以很容易地说 new Guid(myByteArray) ,但如果还有其他不是 GUID 的二进制字段(我猜是图像等),这似乎很笨拙。

是否有任何干净整洁的方法从 byte[] 中获取未序列化的类型?而不仅仅是尝试从中创建不同的对象?或者更好:我可以让 LDAP/AD 告诉我它是什么类型的对象吗?我喜欢这个,因为我想要一个可以处理所有属性并将它们正确映射到我自己的系统中的通用导入。

...这可能是一种边缘情况,但如果可以用通用的方式做到这一点,那将是完美的。如果没有,我可能会坚持尝试捕捉 new Guid(myByteArray)现在。

最佳答案

您应该检查字节数组的长度是否恰好是 16 个字节。除此之外,GUID 显然只是一个 16 字节的数组,因此您无法根据任何其他指标对其进行验证。

至于不小心反序列化了另一个数据类型的字节数组,不幸的是,这个信息通常不会与序列化的字节数组一起存储。调用者应该已经知道字节数组是什么,并自己进行转换。

关于c# - 从 Byte[] 中查找未序列化的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11936510/

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