相关疑难解决方法(0)

如何确定.NET Type是否是自定义结构?

如何编写一个简单的方法,检查具体类型是否是自定义结构(使用public struct { };)创建.

检查Type.IsValueType是不够的,因为这也是千真万确的int,long等,并增加了检查,!IsPrimitiveType将不排除decimal,DateTime也许有些其他值类型.我知道大多数内置值类型实际上是"结构",但我只想检查"自定义结构"

这些问题大致相同但没有我需要的答案:

编辑:从提到的答案"检查'系统'前缀"是最稳定的(虽然它仍然是一个黑客).我最终决定创建一个你必须用它来装饰结构的属性,以便框架将它作为自定义结构来选择.(我想的另一个选择是创建一个空接口,让struct实现那个空接口,但属性方式似乎更优雅)

这是我原来的自定义结构检查器,如果有人感兴趣:

type.IsValueType && !type.IsPrimitive && !type.Namespace.StartsWith("System") && !type.IsEnum
Run Code Online (Sandbox Code Playgroud)

.net c# reflection struct types

7
推荐指数
2
解决办法
6890
查看次数

标签 统计

.net ×1

c# ×1

reflection ×1

struct ×1

types ×1