Skip to the content.

It looks like you have multiple constructors on a type marked [ExplicitConstructor]; that’s just confusing! Pick one, and remove the attribute from the others. This should probably be the one with the most parameters.

Bad:

class MyType
{
    [ExplicitConstructor]
    public MyType(int id, string name) { }

    [ExplicitConstructor]
    public MyType(DateTime when, int id, string name) { }
}

Good:

class MyType
{
    public MyType(int id, string name) { }

    [ExplicitConstructor]
    public MyType(DateTime when, int id, string name) { }
}