Implementare ISupportInitialize nelle classi entità

Sto realizzando l'ennesima versione di una classe base astratta da utilizzare per tutte le entità aziendali. Questa classe dovrà implementare alcune interfacce basilari, tra le quali INotifyPropertyChanged, e pensavo anche alla ISupportInitialize. Il dubbio che ho nell'implementare quest'ultima interfaccia è se devo generare o no gli eventi di notifica del cambio dei valori delle proprietà nel momento che a seguito della chiamata al metodo ISupportInitialize.EndInit() vado ad impostare tutti i valori delle proprietà modificate dopo la chiamata a ISupportInitialize.BeginInit().

Per chiarezza (?), segue il frammento dell'implementazione della classe ed in particolare la parte di implementazione dell'interfaccia ISupportInitialize.

      #region ISupportInitialize implementation
      public void BeginInit()
      {
         if (!m_Initializing)
         {
            m_InitializeData = new Hashtable();
            m_Initializing = true;
         }
      }
 
      public void EndInit()
      {
         if (m_Initializing)
         {
            m_Initializing = false;
            Type t = this.GetType();
            foreach (DictionaryEntry entry in m_InitializeData)
            {
               PropertyInfo pi = t.GetProperty((string)entry.Key);
               if (pi != null)
               {
                  pi.SetValue(this, entry.Value, null);
               }
            }
            m_InitializeData = null;
         }
      }
      #endregion
 

In questa implementazione nel metodo EndInit si impostano i valori di tutte le proprietà modificate dopo la chiamata alla BeginInit bufferizzate in una tabella hash, chiamando il metodo SetValue via reflection che invoca il setter della relativa proprietà, la quale noticherà la modifica generando l'evento relativo all'implementazione della INotifyPropertyChanged (non mostrata nel frammento di codice).

Quindi ecco il dubbio: è corretto così, oppure devo disabilitare le notifiche del cambio delle proprietà quando sono nella EndInit? Personalmente credo che come è scritta ora non vada bene. Da quello che ho capito io, lo scopo dell'implementazione dell'interfaccia ISupportInitialize è di impostare tutte le proprietà senza craere problemi di incoerenza sullo stato dell'entità stessa e quindi, credo che non debbano essere generare le relative notifiche, le quali potrebbero dare problemi ai client "in ascolto".

Sono graditi commenti e/o suggerimenti.

Print | posted on giovedì 13 marzo 2008 13:13

Comments on this post

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
Io penso sia più corretta la seconda opzione, perché se richiamati esplicitamente indicano uno use case ben preciso durante il quale non si vogliono certe notifiche, e quindi in seguito alla EndInit non mi devi sparare tutto ciò che hai in canna.
Left by Tommaso Caldarola on mar 13, 2008 1:30

# re: Implementare ISupportInitialize nelle classi entità

Left by muhabbet yap on lug 17, 2009 5:09

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
LALALALLA
Left by sohbet on set 07, 2009 9:02

# re: Implementare ISupportInitialize nelle classi entità

Left by sohbet on set 07, 2009 9:05

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
how are you admin
Left by sohbet on feb 26, 2011 10:00

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
vSSery blog thanks admin mynet sohbet & sohbet & bizim mekan
Left by delo on mag 20, 2015 10:47

# re: Implementare ISupportInitialize nelle classi entità

Left by Sohbet on ott 22, 2015 10:26

# re: Implementare ISupportInitialize nelle classi entità

Left by sohbet on feb 16, 2016 2:39

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
I demand dress missed something, however there are a numerous of pairs in this cool who could spry graded the carriers.
Left by SWINGING CLUBS on feb 18, 2016 1:35

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
My business is carefully a great deal pleased nigh the consequences an individual change mentioned.
Left by Exterior house painters Perth on ago 29, 2016 11:55

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
Regards for your fabulous benefit other than behaves some sort of different for your your sense delivering stunning information.
Left by ECO Guard Mattress Protectors on ago 31, 2016 1:01

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
This put together involving charge likewise jetty-up have been intricate within epitaph a good article respected rarely ever again just about everywhere a good on the net present arrangement make use of on your own moiety.
Left by e juice on set 07, 2016 11:12

# re: Implementare ISupportInitialize nelle classi entità

Left by Zez Ale on set 07, 2016 1:00

# re: Implementare ISupportInitialize nelle classi entità

Left by Zez Ale on set 08, 2016 11:23

# re: Implementare ISupportInitialize nelle classi entità

Left by Zez Ale on set 10, 2016 2:56

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
Surprisingly solid data records particularly anyone rather past position When i manage this shocking truth riches. In light of reality photos checking for that you data records relating to time period. Much thankfulness to you joined with in like way love.
Left by paleo pattaya on set 19, 2016 12:40

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
This kind of airwaves beneficial to sprint the actual group of your respective party.
Left by Wisdom Teeth Removal on set 27, 2016 11:48

# sohbet

Requesting Gravatar...
Türkiyenins eviyeli sohbet sitesi.
Left by serkan balcı on ott 04, 2016 4:21

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
Gül bir blog olmuş
Left by serkan balcı on ott 10, 2016 1:33

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
Güzel bir site
Left by serkan balcı on ott 12, 2016 7:40

# re: Implementare ISupportInitialize nelle classi entità

Left by Sohbet on ott 22, 2016 8:17

# re: Implementare ISupportInitialize nelle classi entità

Left by serhat on nov 27, 2016 1:40

# re: Implementare ISupportInitialize nelle classi entità

Left by umit on nov 27, 2016 1:59

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
good blogs thanks admin. agario
Left by sohbet on dic 04, 2016 9:16

# re: Implementare ISupportInitialize nelle classi entità

Left by sohbet on dic 28, 2016 11:52

# re: Implementare ISupportInitialize nelle classi entità

Left by sohbet on gen 21, 2017 6:27

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
Güzel bir blog sayfası
Left by sohbet on feb 23, 2017 4:54

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
please let us know the best products review
Left by kathy on feb 27, 2017 10:10

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
güzel vede çok emekli bir blog sayfası
Left by sohbet on mar 29, 2017 8:42

# porno izle

Requesting Gravatar...
tşk by admin
porno izle
Left by tolga on apr 09, 2017 11:45

# türk porno izle

Requesting Gravatar...
türk porno izle porno izle tşk admin
porno izlesene
Left by tolga on apr 09, 2017 11:48

# porno izle

Requesting Gravatar...
tşk bay admin porno izle türk pornoları porno

porno izle
Left by tolga on apr 09, 2017 12:18

# teen porno

Requesting Gravatar...
tşk bay admin başarılar, teen porno, teen pron, porno, porno izle
teen porno
Left by kaya on apr 09, 2017 12:52

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
tşk admin teen porno, porno izle, pornolar
teen porno
Left by kaya on apr 09, 2017 12:55

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
mükemmel site
Left by sohbet on apr 21, 2017 11:57

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
GÜZEL blog
Left by sohbet on apr 23, 2017 8:23

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
My partner and i corresponding numerous the actual stymies click also been submitted from the firms ofthis regard, bunch of them tend to be challenging decorous encouraged beauty parlor the actual windows vista.
Left by Locked out on mag 20, 2017 11:59

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
güzel chat sitesi
Left by sohbet on mag 24, 2017 11:19

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
Herkesin görmesi gereken güzel bir blog sayfası
Left by sohbet on mag 24, 2017 11:20

# re: Implementare ISupportInitialize nelle classi entità

Left by serkan balcı on mag 29, 2017 9:02

# re: Implementare ISupportInitialize nelle classi entità

Left by Dunua on mag 31, 2017 5:34

# re: Implementare ISupportInitialize nelle classi entità

Left by sohbet on giu 04, 2017 9:08

# re: Implementare ISupportInitialize nelle classi entità

Left by serhat on giu 26, 2017 11:22

# Geveze Sohbet

Left by Geveze Sohbet on lug 07, 2017 7:03

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
teşekkürler
Left by Sohbet Siteleri on lug 12, 2017 3:08

# sohbet siteleri

Left by Root on lug 26, 2017 11:32

# bizimmekan

Left by Bizimmekan on ago 09, 2017 5:41

# re: Implementare ISupportInitialize nelle classi entità

Left by saraypanel on set 07, 2017 11:58

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
thanks
Left by sohbet on ott 24, 2017 1:18

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
There's been some sort of a lot of bad feel planning with regards to with regards to seek treatise careers. Your current suggest about this meticulous paper functionality wedding Australia nevertheless offsets these losing some sort of invariable selected effulgent on these sacraments.
Left by medical reception course on nov 17, 2017 12:21

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
Appreciative to you finishing know truth and after this getting reduce perilous fresh particular individual ought to be entire Craigslist joined with amazon.
Left by etf indien on dic 12, 2017 11:02

# re: Implementare ISupportInitialize nelle classi entità

Left by yabancı dizi on dic 17, 2017 6:40

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
Kamyonet nakliye olarak İstanbul geneli ev taşıma işlerinizde kaliteli işçilik hizmetleri.
Left by Kamyonet nakliye on dic 21, 2017 3:15

# re: Implementare ISupportInitialize nelle classi entità

Left by şişli travesti on feb 13, 2018 11:24

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
I found different and unique information in this blog as compared to other blogs.this is good experience and i enjoyed it thats why i refer it and also refer latest international urdu news
Left by latest international urdu news on feb 20, 2018 10:25

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
diyalog.net türkiye içi sohbet edip yeni insanlarla tanışmanıza yardımcı olan bir internet sitesidir.
Left by Sohbet on mar 13, 2018 1:24

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
Addition arrangements are your innovative-sequence random to speak.
Left by angasshley on mar 23, 2018 12:45

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
güzel vede farklı
Left by serkan balcı on mar 29, 2018 10:42

# sohbet

Requesting Gravatar...
güzel vede farklı bir blog sayfası başarılar
Left by serkan balcı on apr 13, 2018 11:09

# sohbet

Requesting Gravatar...
fena bir blog olmuş tebrikler
Left by sohbet on apr 14, 2018 11:33

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
Chat Siteleri ve insanların bu sitelere neden ihtiyaç duyduklarını kısaca anlatmak istedik.
Chat Siteleri . İnsanların web üzerinden kolayca giriş yapabileceği tamamen çevrim içi olarak, canlı, farklı ve rasgele insanların katılımıyla, tanışmak ve sohbet etmek için web üzerinde kurulan en güvenli ve hızlı bir sosyalleşme yoludur.
'Herne olursa olsun insanlar daha güvenli gördüğü bu
Sohbet Odalarına her geçen gün daha çok rağbet etmektedirler. Kimi insan
Sohbet etmek, reel hayatın vermiş olduğu o sıkıntılı havadan kurtulmak eğlenmek için giriş yapmaktadırlar. Bazı insanlarda yeni arkadaşlıklar kurmak, aşk ve sevgi denen o duyguyu tatmak, kendisini iyi hissettirecek, sırlarını paylaşacak belkide güvendiği bir dost aramak için bu arkadaşlık sitelerine giriş yapmaktadır. Hayat bazen çekilmez olur ya işte tam o sırada bizi bu hayattan bezdiren o sıkıcı gerçeğimizi azda olsa unutmak adına internet üzerinden
Chat Odası yada
Sohbet Odası aramaya başlarız. Bizim için uygun
sohbet siteleri üzerinden giriş yaparak bu havayı solumak isteriz. Bizim için önemli olan tek şey gireceğimiz Sohbe arkadaşlık sitesinin ücretsiz ve üyelik istemeden o ortama girmek eğlenmek bol bol
Chat yapmak ve kendimize uygun bir
Sohbet arkadaşı bulmaktır.
Left by sohbet on mag 19, 2018 3:19

# rakipbahis

Requesting Gravatar...
Rakipbahis Türkiye'nin en çok kullanılan, en bilinen sadece bayiler üzerinden üye açılışı, para yatırma ve para çekme işlemi yapılabilen bir bahis sitesidir
Left by rakipbahis on giu 04, 2018 4:17

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
paylasim için tskler
Left by Cep Sohbet on giu 23, 2018 5:42

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
nakliyat, evden eve nakliyat, kamyonet nakliye, ambalajlama ve paketleme, kamyon nakliyat, nakliyat fiyatları
Left by Yazıcılar Nakliyat on giu 26, 2018 4:00

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
istanbul nakliyat, istanbul evden eve nakliyat, ofis büro taşımacılığı, istanbul şehirler arası nakliyat, çeyiz taşımacılığı, ofis taşıma firması
Left by Varlılar Nakliyat on giu 26, 2018 4:02

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
moloz atımı, istanbul moloz atma, istanbul belediyesi moloz atımı fiyatları, moloz taşıma şirketi
Left by Varlılar Moloz Atımı on giu 26, 2018 4:03

# re: Implementare ISupportInitialize nelle classi entità

Left by Dudulu Nakliyat on giu 26, 2018 4:05

# Sohbet ücretsiz

Requesting Gravatar...
tanks cok berry godd
Left by Sohbet on giu 30, 2018 8:12

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
Tipobet, diğer bahis siteleri gibi güvenilir bahis sitelerini sizlere sunan güvenilir bahis sitesi
Left by tipobet on lug 03, 2018 10:57

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
Kanyak matarası satın almak artık çok kolay sipariş vermek için sitemizi ziyaret etmeniz yeterli
Left by kanyak matarası on lug 06, 2018 9:30

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
seslihece sizlere kaliteli sohbet sunar
Left by seslihece on lug 12, 2018 12:16

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
Maltepe Devlet Hastanesi Çiçek Göndermek için doğru adres.
<a href="https://www.cicekmar.com/maltepe-devlet-hastanesi
Left by maltepe devlet hastanesi on lug 31, 2018 9:19

# Silverell

Requesting Gravatar...
Gumuş kolye gumuş takı kupe bileklik modelleri
Left by Silverella on lug 31, 2018 9:27

# re: Implementare ISupportInitialize nelle classi entità

Left by seslihece on ago 19, 2018 3:59

# seviyeli sohbet siteleri

Left by sohbet on ago 22, 2018 11:29

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
Remember to play it everyday to laugh more basketball games
Left by famitofu on ago 23, 2018 11:15

# Sesli Sohbet

Requesting Gravatar...
thanks sesli sohbet
Left by sesli sohbet on ott 12, 2018 10:42
Comments have been closed on this topic.