-
Notifications
You must be signed in to change notification settings - Fork 26
Kopyalayıcı
MapConfiguration, BatMap projesinin en önemli sınıfı; kayıt, kopyalama ve yansıtma işlemleri için hep bu sınıfı kullanacağız.
public MapConfiguration(DynamicMapping dynamicMapping = DynamicMapping.NotAllowed,
bool preserveReferences = false)
public MapConfiguration(IExpressionProvider expressionProvider,
DynamicMapping dynamicMapping = DynamicMapping.NotAllowed,
bool preserveReferences = false)
MapConfiguration'a yapıcı metodları aracılığıyla 3 adet parametre verebiliriz, bunlara ayarlar diyebiliriz.
-
dynamicMapping: MapConfiguration kayıt edilmemiş bir tip ikilisiyle karşılaştığında bu ayara bakar.
- NotAllowed (varsayılan): InvalidOperationException hatası fırlatır
- Map: Kopyalama işlemi için gerekli MapDefinition'ı üretir, ancak önbelleğe almaz
- MapAndCache: Kopyalama işlemi için gerekli MapDefinition'ı üretir ve önbelleğe alır, böylece aynı tip ikilisi için sonraki kopyalamalar daha hızlı olur
-
preserveReferences: (varsayılan: false) Referans koruma için varsayılan ayar. preserveReferences çevrimsel bağlılıkları (circular dependencies) aşmak için kullanılır. Tüm Map metodları bu ayara sahiptir, ancak boş geçilebilir, eğer boş geçilirse bu varsayılan değer kullanılır. Aktifi olduğunda biraz farklı bir kopyalama kodu çalışır, yeni bir obje kopyalanacağı zaman öncelikle önbelleğe bakar. Eğer önbellekte yoksa yeni bir örnek oluşturup bunu önbelleğe alır.
-
expressionProvider: (varsayılan: ExpressionProvider'ın örneği (instance)) IExpressionProvider arayüzü verilen iki üye için MemberBindingExpression üretmekten sorumludur. Kendi uyarlamanızı ya da ExpressionProvider sınıfından türeyen örneğinizi enjekte edebilirsiniz.
Kolay kullanım için Mapper isimli, arka planda bir MapConfiguration örneği kullanan statik bir sınıf bulunur. Mapper sınıfı MapConfiguration çoğu özelliğini barındırır. Bu sınıfın kullandığı MapConfiguration aşağıdaki gibi oluşturulur:
new MapConfiguration(DynamicMapping.MapAndCache)
Böylece statik API aşağıdaki ayarlara sahip olur:
- dynamicMapping = DynamicMapping.MapAndCache
- preserveReferences = false
- expressionProvider = ExpressionProvider's tekil örneği
⏭ Kayıt
Developed with ❤️ at Doğuş Teknoloji