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 Thursday, March 13, 2008 11:13 AM

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 12:30 PM

# re: Implementare ISupportInitialize nelle classi entità

Left by muhabbet yap on Jul 17, 2009 4:09 AM

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
LALALALLA
Left by sohbet on Sep 07, 2009 8:02 PM

# re: Implementare ISupportInitialize nelle classi entità

Left by sohbet on Sep 07, 2009 8:05 PM

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
how are you admin
Left by sohbet on Feb 26, 2011 9:00 PM

# re: Implementare ISupportInitialize nelle classi entità

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

# re: Implementare ISupportInitialize nelle classi entità

Left by Sohbet on Oct 22, 2015 9:26 PM

# re: Implementare ISupportInitialize nelle classi entità

Left by sohbet on Feb 16, 2016 1:39 AM

# 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 12:35 PM

# 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 Aug 29, 2016 10:55 AM

# 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 Aug 31, 2016 12:01 PM

# 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 Sep 07, 2016 10:12 AM

# re: Implementare ISupportInitialize nelle classi entità

Left by Zez Ale on Sep 07, 2016 12:00 PM

# re: Implementare ISupportInitialize nelle classi entità

Left by Zez Ale on Sep 08, 2016 10:23 AM

# re: Implementare ISupportInitialize nelle classi entità

Left by Zez Ale on Sep 10, 2016 1:56 PM

# 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 Sep 19, 2016 11:40 AM

# 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 Sep 27, 2016 10:48 AM

# sohbet

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

# re: Implementare ISupportInitialize nelle classi entità

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

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
Güzel bir site
Left by serkan balcı on Oct 12, 2016 6:40 PM

# re: Implementare ISupportInitialize nelle classi entità

Left by Sohbet on Oct 22, 2016 7:17 PM

# re: Implementare ISupportInitialize nelle classi entità

Left by serhat on Nov 27, 2016 12:40 AM

# re: Implementare ISupportInitialize nelle classi entità

Left by umit on Nov 27, 2016 12:59 AM

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
good blogs thanks admin. agario
Left by sohbet on Dec 04, 2016 8:16 AM

# re: Implementare ISupportInitialize nelle classi entità

Left by sohbet on Dec 28, 2016 10:52 PM

# re: Implementare ISupportInitialize nelle classi entità

Left by sohbet on Jan 21, 2017 5:27 PM

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
Güzel bir blog sayfası
Left by sohbet on Feb 23, 2017 3:54 PM

# re: Implementare ISupportInitialize nelle classi entità

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

# re: Implementare ISupportInitialize nelle classi entità

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

# porno izle

Requesting Gravatar...
tşk by admin
porno izle
Left by tolga on Apr 09, 2017 10:45 AM

# türk porno izle

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

# porno izle

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

porno izle
Left by tolga on Apr 09, 2017 11:18 AM

# 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 11:52 AM

# 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 11:55 AM

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
mükemmel site
Left by sohbet on Apr 21, 2017 10:57 PM

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
GÜZEL blog
Left by sohbet on Apr 23, 2017 7:23 PM

# 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 May 20, 2017 10:59 AM

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
güzel chat sitesi
Left by sohbet on May 24, 2017 10:19 PM

# re: Implementare ISupportInitialize nelle classi entità

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

# re: Implementare ISupportInitialize nelle classi entità

Left by serkan balcı on May 29, 2017 8:02 PM

# re: Implementare ISupportInitialize nelle classi entità

Left by Dunua on May 31, 2017 4:34 PM

# re: Implementare ISupportInitialize nelle classi entità

Left by sohbet on Jun 04, 2017 8:08 PM

# re: Implementare ISupportInitialize nelle classi entità

Left by serhat on Jun 26, 2017 10:22 PM

# Geveze Sohbet

Left by Geveze Sohbet on Jul 07, 2017 6:03 PM

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
teşekkürler
Left by Sohbet Siteleri on Jul 12, 2017 2:08 PM

# sohbet siteleri

Left by Root on Jul 26, 2017 10:32 PM

# bizimmekan

Left by Bizimmekan on Aug 09, 2017 4:41 PM

# re: Implementare ISupportInitialize nelle classi entità

Left by saraypanel on Sep 07, 2017 10:58 PM

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
thanks
Left by sohbet on Oct 24, 2017 12:18 AM

# 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 11:21 AM

# 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 Dec 12, 2017 10:02 AM

# re: Implementare ISupportInitialize nelle classi entità

Left by yabancı dizi on Dec 17, 2017 5:40 PM

# 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 Dec 21, 2017 2:15 AM

# re: Implementare ISupportInitialize nelle classi entità

Left by şişli travesti on Feb 13, 2018 10:24 PM

# 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 9:25 PM

# 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 12:24 PM

# re: Implementare ISupportInitialize nelle classi entità

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

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
güzel vede farklı
Left by serkan balcı on Mar 29, 2018 9:42 PM

# sohbet

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

# sohbet

Requesting Gravatar...
fena bir blog olmuş tebrikler
Left by sohbet on Apr 14, 2018 10:33 PM

# 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 May 19, 2018 2:19 AM

# 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 Jun 04, 2018 3:17 PM

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
paylasim için tskler
Left by Cep Sohbet on Jun 23, 2018 4:42 PM

# 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 Jun 26, 2018 3:00 PM

# 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 Jun 26, 2018 3:02 PM

# 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 Jun 26, 2018 3:03 PM

# re: Implementare ISupportInitialize nelle classi entità

Left by Dudulu Nakliyat on Jun 26, 2018 3:05 PM

# Sohbet ücretsiz

Requesting Gravatar...
tanks cok berry godd
Left by Sohbet on Jun 30, 2018 7:12 PM

# 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 Jul 03, 2018 9:57 AM

# 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 Jul 06, 2018 8:30 PM

# re: Implementare ISupportInitialize nelle classi entità

Requesting Gravatar...
seslihece sizlere kaliteli sohbet sunar
Left by seslihece on Jul 11, 2018 11:16 PM

# 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 Jul 31, 2018 8:19 AM

# Silverell

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

# re: Implementare ISupportInitialize nelle classi entità

Left by seslihece on Aug 19, 2018 2:59 PM

# seviyeli sohbet siteleri

Left by sohbet on Aug 22, 2018 10:29 PM

# re: Implementare ISupportInitialize nelle classi entità

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

# Sesli Sohbet

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