読者です 読者をやめる 読者になる 読者になる

モノトーンの伝説日記

OBS Studio と Blackmagic Design が大好き。

<mini> [Managed Behavior SDK] PropertyMetadata.Create(null) をつかって Actions の初期値を設定すると System.TypeInitializationException が出る件

 ふぁっく。

public ActionCollection Actions
{
  get
  {
    var actions = (ActionCollection)GetValue(ActionsProperty);
    if (actions == null)
    {
      actions = new ActionCollection();
      SetValue(ActionsProperty, actions);
    }
    return actions;
  }
}
public static readonly DependencyProperty ActionsProperty =
  DependencyProperty.Register(nameof(Actions), typeof(ActionCollection), typeof(KeyTriggerBehavior), PropertyMetadata.Create(null));

正しいように見えますが、動きません。

public static readonly DependencyProperty ActionsProperty =
  DependencyProperty.Register(nameof(Actions), typeof(ActionCollection), typeof(KeyTriggerBehavior), new PropertyMetadata(null));

としましょう。ほかの依存関係プロパティーを代入しようとするとそこで TypeInitializationException がでるので、原因特定に時間がかかるので注意しましょう。