Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Configure appropriate serialization for Windows forms

After upgrading my win-forms-project to .NET 9, I now get the following error on the properties of my user-controls:

WFO1000: Property 'property' does not configure the code serialization for its property content.

I read the explanation from Microsoft for that issue: https://learn.microsoft.com/en-us/dotnet/core/compatibility/windows-forms/9.0/security-analyzers

I understand the security issues but I still do not know how to fix them. I do not want to suppress this message, I want to handle this serialization issue properly.

In that article, Microsoft suggests:

Review the properties flagged by the analyzer and configure appropriate serialization settings as needed.

I wonder: how exactly do I do that?

like image 321
anion Avatar asked May 25 '26 22:05

anion


1 Answers

This can happen when you create your own Windows Forms control and add custom public properties or override existing properties. Declare an appropriate attribute on the affected properties. E.g.:

If you don't want to save (i.e., serialize) this property:

[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public Color FocusColor { get; set; } = Color.Yellow;

In this case it is probably also a good idea to set [Browsable(false)], which hides this property from the property editor, because edits made in the property editor will not be persisted.

or

If you want to save (i.e., serialize) this property:

[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public Color FocusColor { get; set; } = Color.Yellow;

For an object whose properties must be serialized you can use the value DesignerSerializationVisibility.Content.

like image 60
Olivier Jacot-Descombes Avatar answered May 28 '26 11:05

Olivier Jacot-Descombes