gpt4 book ai didi

c# - 确定 ITypeSymbol 在编译器 API 中是否可序列化

转载 作者:行者123 更新时间:2023-11-30 23:25:05 34 4
gpt4 key购买 nike

我需要检查一个 ITypeSymbol 以查看它是否可序列化。 ITypeSymbol 上没有IsSerializable 属性,也没有我在 Compiler API 中知道的扩展方法可以执行此操作,因此这是我能想到的最佳猜测:

  • 如果IsValueType为真,它是可序列化的
  • 如果类型在 GetAttributes() 的返回值中有 [SerializableAttribute],则它是可序列化的
  • 如果它实现了 ISerializable 接口(interface),它就是可序列化的。

我是否遗漏了任何其他可能性?

最佳答案

如果你想复制 Type.IsSerializable 的功能,你可以查看 its reference source .它的作用是:

  • 如果类型具有[Serializable] 属性则返回true
  • 返回 true 如果类型是 DelegateEnum 或从它们继承,即如果类型是 delegateenum
  • 否则返回false

这意味着您的值类型和 ISerializable 实现的特殊大小写不正确。

关于c# - 确定 ITypeSymbol 在编译器 API 中是否可序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37463078/

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