Feeds code analyzers
PS0001
A property selector can only use property members.
The path of the PropertySelector
tries to access a member that is not a method.
Property selectors can only be of the form e => e.A.B.C
, you cannot use a method nor an external value (i.e. cannot have any closure), and cannot be a method group.
PS0002
A property selector cannot have any closure.
The PropertySelector
tries to use a captured value instead of the lambda argument.
Property selectors can only be of the form e => e.A.B.C
. It is not possible to use a method nor an external value (i.e. cannot have any closure), and cannot be a method group.
PS0003
A property selector must be a lambda.
The PropertySelector
is not a lambda expression.
Property selectors can only be of the form e => e.A.B.C
. It is not possible to use a method nor an external value (i.e. cannot have any closure), and cannot be a method group.
PS0004
The TEntity
of a PropertySelector<TEntity, TValue>
must be a record
The type of the entity of your PropertySelector
is not a record.
Convert the type to a record to use it with a PropertySelector
.
PS0005
All types involved in a PropertySelector must be records.
An intermediate type in the path of the PropertySelector
is not a record.
If the path is e => e.A.B.C
, make sure that A
and B
are records.
PS0006
All types involved in a PropertySelector must be constructable without parameter.
An intermediate type in the path of the PropertySelector
does not have a constructor which is parameter-less or which accepts only nullable values.
If your path is e => e.A.B.C
, make sure that A
and B
have either a parameter-less constructor or a constructor that accepts only nullable values.
For instance, considering a record MyRecord
:
public record MyRecord(string Value);
Valid constructors would be:
public record MyRecord(string? Value);
/* OR */
public record MyRecord(string Value = "");
/* OR */
public record MyRecord(string Value)
{
public MyRecord(): this("a default value") { }
}
PS0101
A method which accepts a PropertySelector must also have two parameters flagged with [CallerFilePath]
and [CallerLineNumber]
.
A method has a PropertySelector
parameter but is missing at least one argument flagged with [CallerFilePath]
or [CallerLineNumber]
attribute.
Add the missing argument.
See Declare a PropertySelector parameter on a method for more details.
PS0102
[CallerFilePath]
and [CallerLineNumber]
arguments used with a PropertySelector argument must be constant values.
It is not supported to invoke a method that has a PropertySelector
parameter and provides non constant value for at least one argument flagged with [CallerFilePath]
or [CallerLineNumber]
attribute.
Remove the value to let the compiler populate it or convert it to a constant value.
See Declare a PropertySelector parameter on a method for more details.