行为 SDK - ChangePropertyAction 在使用 .net native 编译时在运行时生成参数异常

Behavior SDK - ChangePropertyAction generates argument exception in runtime when compiling with .net native

我正在使用 Behaviors SDK 中的 DataTrigerBehavior 根据其他 属性 的值更改 System.Windows.Shapes.Path.Data 属性,这是我的代码的一部分:

 <Path x:Name="ItemPath" Stretch="Uniform" Grid.Column="0" Fill="#FF646464" Stroke="{x:Null}" StrokeThickness="3"> 
   <Interactivity:Interaction.Behaviors>
     <Core:DataTriggerBehavior Binding="{Binding FType, Converter={StaticResource EnumToStringConverter}}" Value="Parent"> 
       <Core:ChangePropertyAction TargetObject="{Binding ElementName=ItemPath}" PropertyName="Data" Value="M15,6H8V3c0-0.484-0.375-1-1-1C6.539,2,6.305,2.287,6,2.54L0.625,7C0.242,7.313,0,7.555,0,8s0.242,0.688,0.625,1L6,13.46  C6.305,13.713,6.539,14,7,14c0.625,0,1-0.516,1-1v-3h7c0.55,0,1-0.45,1-1V7C16,6.45,15.55,6,15,6z"/>
     </Core:DataTriggerBehavior>
  </Interactivity:Interaction.Behaviors>
</Path>

当我不使用 .net native 工具链编译项目时它工作正常,但在使用 .Net native 编译项目后我在运行时遇到参数异常。

这是异常详情:

抛出异常:'System.ArgumentException' in Microsoft.Xaml.Interactions.dll

附加信息:找不到类型为路径的 属性 命名数据。

为什么在路径 class 中找不到数据 属性?

你能帮帮我吗?

Behaviors SDK 和 .NET Native 似乎存在一些已知和报告的问题。

引用自 Connect 错误报告:

当您 运行 发布时,您在 .NET Native 运行时 运行。这里要注意的一件事是 ChangePropertyAction 在应用程序执行期间使用反射来理解 属性 和您尝试在元素上设置的值。为了在这些情况下反射在 .NET Native 运行时成功工作,您需要使用您尝试的 属性 的类型信息更新 default.rd(默认情况下在项目的 Properties 文件夹中)使用权。在这种情况下,你可以通过添加以下行来解决这个问题 default.rd.

<Type Name=”Windows.UI.Xaml.Shapes.Shape” Dynamic=”Required Public” />

请注意,您需要对项目中 ChangePropertyAction 引用的其他类型执行上述操作。

来源:Exception occurs in ChangePropertyAction in release mode UWP application