Up to date
        This page is up to date for Redot 4.3.
        If you still find outdated information, please create an issue.
      
GD0103: The exported member is read-only¶
Rule ID  | 
GD0103  | 
Category  | 
Usage  | 
Fix is breaking or non-breaking  | 
Non-breaking  | 
Enabled by default  | 
Yes  | 
Cause¶
A read-only member is annotated with the [Export] attribute. Read-only members
can't be exported.
Rule description¶
Redot doesn't allow exporting read-only members.
// Read-only fields can't be exported.
[Export]
public readonly int invalidField;
// This field can be exported because it's not declared 'readonly'.
[Export]
public int validField;
// Read-only properties can't be exported.
[Export]
public int InvalidProperty { get; }
// This property can be exported because it has both a getter and a setter.
[Export]
public int ValidProperty { get; set; }
How to fix violations¶
To fix a violation of this rule for fields, remove the readonly keyword or
remove the [Export] attribute.
To fix a violation of this rule for properties, make sure the property declares
both a getter and a setter, or remove the [Export] attribute.
When to suppress warnings¶
Do not suppress a warning from this rule. Read-only members can't be exported so they will be ignored by Redot, resulting in runtime errors.