Qianshi's Blog
122 字
1 分钟
MvvmToolkit conflicts with PropertyChanged.Fody
2024-10-18

问题描述:在同时使用 MvvmToolkitPropertyChanged.Fody 时,如果使用 MvvmToolkitOnPropertyNameChanged(T newValue) 时,在使用VS调试时不会有任何问题,但是在打包时会出现 PropertyChanged.Fody 异常。#

原因:PropertyChanged.Fody 有默认的 On_PropertyName_Changed 方法注入,但是注入的方法不支持只有一个参数前面的方法。详情:https://github.com/Fody/PropertyChanged/wiki/On_PropertyName_Changed#passing-old-and-new-value-to-the-on_propertyname_changed-method#

解决方案:#

  1. 使用两个参数签名的方法。
  2. 更改Fody 配置项FodyWeavers.xmlInjectOnPropertyNameChanged='false' 禁止注入属性变更方法。
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
    <PropertyChanged InjectOnPropertyNameChanged='false'/>
</Weavers>
MvvmToolkit conflicts with PropertyChanged.Fody
https://kuriyama.top/posts/dotnet/mvvm-tookit-conflicts-with-property-changed-fody/
作者
Qian Shi
发布于
2024-10-18
许可协议
CC BY-NC-SA 4.0