2011-04-19 12 views
8

Veri erişimimi ve neredeyse tüm hizmetlerle aynı olan diğer özellikleri başlatırken çoğaltmayı azaltmak için Hizmetlerim katmanımda hemen hemen tüm sınıfları bir ServiceBase'dan miras almaya devam ediyorum, ancak RoleService numaralı telefonuma ulaştığımda parçalarımda durdum Web sitemin 'resmi' rol sağlayıcısı olarak yapılandırabilmem için RoleProvider'dan miras alması gerekiyor.Dinamik nesneleri kullanarak bir şekilde birden fazla mirasa benzeyebilir miyim?

Şimdi gece biraz geç ve kafein formda, ancak türetilmiş bir nesne yerine dinamik bir nesneyi kullanmanın herhangi bir yolu olup olmadığını merak ediyordum ve temel nesnenin tüm üyelerini ekliyordum. derleme zamanı yerine çalışma zamanında 'türetilmiş' nesneye.

Bu, uzaktan mümkün mü?

+1

+1. Hiç bir fikrim yok :) –

+2

Sorunuzu doğrudan burada yanıtlamıyorsunuz, ancak endişeleri ayırırken ve Dependency Injection (Doğru Bağımlılık Enjeksiyonunu) düzgün bir şekilde kullanırken yaygın bir temel sınıftan miras almayı buldum. Düşünecek bir şey.Köprü deseni için – StriplingWarrior

cevap

3

, DynamicObject, birden fazla kalıtımın olduğu ve C# desteklemediği iki somut sınıftan türetmenize izin vermez. Karşılaştığınız problem, dinamik ya da statik olarak aynıdır. Birbiriyle ilgisi olmayan Base1 ve Base2 varsa, Base1'dan Derived türetir çıkarmaz, Derived is Base2'un hiçbir zaman doğru olama ihtimali yoktur. Bunun yerine Derived is IBase2 için yerleşebilirsiniz. Çoklu arayüzü veya bir beton türetme ve bir arayüz ile birlikte

:

Sana kullanmanızı öneririz.

  • Eğer baz
  • yapmak istediği çalışır bir implementor sınıf oluşturmak yerine bir üs
  • bir arayüz oluşturmak uygulamak arayüzü yerine tabanın
  • doğan: Birden devralma simüle etmek implementor örneğine tüm arayüz çağrıları ileterek yürütücüsü için
  • "köprü"

Bu sadece bir ileri şekilde uygulayan sınıfta kod miktarını sınırlar Arabirim yöntemi veya özelliği başına çağrı. İlginç soru için

+0

+1 –

+0

İki sınıftan miras almak istediğimi söylemem, daha çok dinamik olarak her iki tabandan gelen üyelerle bir nesne inşa etmeyi istedim. – ProfK

+0

@ProfK: Sorunuzun başlığı "çoklu kalıtım" ifadesini içerir. Bu çok açık bir şekilde, iki sınıftan miras almayı taklit etmek istediğinizi söylüyor. Yine de, DynamicObject'in başka bir sözde temel sınıftan üyeler eklemekte hiçbir yardımı olmadığını düşünüyorum. En azından köprü modelinden daha iyi değil. –

1

Dunno gerçekten sınıf düzeyinde sorun geçmesi gerekir, ama burada bir WCF servisi olarak Rol sağlayıcı kurmak için yararlı olabilecek bazı kaynaklar ise: (! Ne bir bağlantı)

http://wcfsecurity.codeplex.com/wikipage?title=How%20To%20-%20Use%20SQL%20Role%20Provider%20with%20Windows%20Authentication%20in%20WCF%20calling%20from%20Windows%20Forms

http://msdn.microsoft.com/en-us/library/aa702542.aspx

Ayrıca düzenleme ---- burada bu yazı sözü edilen: Hayır Can I create a custom roleprovider through a WCF service?

İlgili konular