Wie konfiguriere ich Automapper so, dass Eigenschaften mit dem ReadOnly-Attribut automatisch ignoriert werden?

Kontext

Sagen wir, ich habe die folgende "Ziel" -Klasse:

public class Destination
{
    public String WritableProperty { get; set; }

    public String ReadOnlyProperty { get; set; }
}

und eine "source" -Klasse mit demReadOnly -Attribut für eine seiner Eigenschaften:

public class Source
{
    public String WritableProperty { get; set; }

    [ReadOnly(true)]
    public String ReadOnlyProperty { get; set; }
}

Es liegt auf der Hand, aber um es klar zu machen: Ich werde eine Karte vonSource Klasse zuDestination Klasse auf folgende Weise:

Mapper.Map(source, destination);
Problem

Wie kann Automapper so konfiguriert werden, dass Eigenschaften mit @ automatisch ignoriert werdeReadOnly(true) attribute?

Einschränkungen:

Ich benutze AutomappersProfile Klassen für die Konfiguration. Ich möchte Klassen nicht mit Automapper-spezifischen Attributen beschmutzen. Ich möchte Automapper nicht für jede einzelne schreibgeschützte Eigenschaft konfigurieren und auf diese Weise viel Duplizieren.

Mögliche (aber nicht passende) Lösungen: 1) Attribut hinzufügenIgnoreMap zur Immobilie:
    [ReadOnly(true)]
    [IgnoreMap]
    public String ReadOnlyProperty { get; set; }

Ich möchte keine Klassen mit automapper-spezifischen Attributen beschmutzen und davon abhängig machen. Außerdem möchte ich kein zusätzliches Attribut zusammen mit @ hinzufügeReadOnly attribute.

2) Konfigurieren Sie Automapper so, dass die Eigenschaft ignoriert wird:
CreateMap<Source, Destination>()
.ForSourceMember(src => src.ReadOnlyProperty, opt => opt.Ignore())

Es ist kein Weg, weil es mich dazu zwingt, das für jede einzelne Immobilie überall zu tun und außerdem eine Menge Duplikate verursacht.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage