0

在一个工具项目中,我为 Unity3D 资产生成元文件。由于所有统一资产元都从相同的属性开始,我创建了一个基本类型:

public class MetaBase { public int fileFormatVersion { get; set; } public Guid guid { get; set; } public long timeCreated { get; set; } public string licenseType { get; set; } }

序列化从MetaBase继承的类型的实例会生成 unity 接受的文件,但 fileFormatVersion、guid、timeCreated 和 licenseType 写在文件的底部,而 Unity 将它们写在顶部。正如我所说,它可以工作,但是每当 Unity 决定覆盖元文件时,它都会产生一些需要在我的项目存储库中提交的差异,如果可能的话,我宁愿避免这种情况。

所以,我的第一个想法(升级到 YamlDotNet 4.0.0 之后)是添加一个TypeInspectorSkeleton,它会根据属性的声明类型对 _IPropertyDescriptor_s 进行排序。但是IPropertyDescriptor不提供对实际Property的访问,也不提供对其baseDescriptor属性的访问(对于PropertyDescriptor / OverridePropertyDescriptor)。

不应该有某种方法来访问 Property owner 类型吗?或者也许有更好的方法来实现我想要做的事情?

4

0 回答 0