我正在使用 Mono.Cecil 在 Unity 中修改程序集后编译(我正在使用Mono.Cecil 的此实现)。出于某种原因,如果我将字段添加到程序集中的类型,并且该字段的类型是我定义的委托类型,则程序集中的脚本在第一次成功修改/编织后似乎不会更新。
每次重新编译时,以下代码都会正确运行,但如果我尝试将 PropertyChangedEventHandler 替换为自定义委托类型,则程序集只会正确编译和编织一次,然后拒绝使用较新的脚本更改进行编译/更新。只有当我重新启动 Unity 时它才能再次工作。我没有收到任何错误消息:
var handlerReference = typeDefinition.Module.ImportReference(typeof(System.ComponentModel.PropertyChangedEventHandler));
var fieldDef = new FieldDefinition(nameof(INotifyMethodCalled.MethodCalled), FieldAttributes.Private | FieldAttributes.NotSerialized, handlerReference);
typeDefinition.Fields.Add(fieldDef);
任何帮助将不胜感激。