--- lang: ja-jp breaks: true --- # WinForm `net9.0` でビルドすると、`error WFO1000: プロパティ 'xxxxxxxx' は、プロパティ コンテンツのコード シリアル化を構成しません` とエラーになる。 2024-11-17 ## [Breaking change]: New security analyzers in WinForms prevent leaking of user data #42724 * https://github.com/dotnet/docs/issues/42724 ## New security analyzers * https://learn.microsoft.com/en-us/dotnet/core/compatibility/windows-forms/9.0/security-analyzers * ## 以下の何れかの属性を設定すると抑止できる。 * DesignerSerializationVisibilityAttribute * DefaultValueAttribute * ShouldSerialize[propertyName] methods * ```csharp= [DefaultValue(null)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] public UnmanagedMemoryStream SoundAsterisk { get { return this._srmSoundAsterisk; } set { this._srmSoundAsterisk = value; } } private bool ShouldSerializeSoundAsterisk() { return true; } ``` ```csharp= [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] ``` ## 何も変更せずに抑止したい場合は、`.editorconfig` に設定を追加する。 * 以下を追加する。 ```editorconfig= # error WFO1000: プロパティ 'XXXXXXXX' は、プロパティ コンテンツのコード シリアル化を構成しません dotnet_diagnostic.WFO1000.severity = silent ``` ###### tags: `WinForm` `net9.0` `C#` `error WFO1000`