Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Hjälp med generell implementation

Postades av 2006-11-27 22:08:02 - Marcus Johansson, i forum arkitektur, Tråden har 4 Kommentarer och lästs av 1461 personer

Jag försöker skapa någon form av generell objekt generering utifrån ett visst värde (int) .
Men lyckas inte fullt ut. Vore tacksam för lite ideer.

Vill kunna göra följande.

<code>
//Skapa en Repository som matchar inmatadt ID. T ex LoggerRepository
ModuleRepository MR = GetRepositoryByCid(moduleID);

//Ska retunera ett objekt av typen Logger
Logger loggerObject = MR.Load();
//Eller
IModule genericObject = MR.Load();
</code>
<code>
//Interface som alla moduler implementerar.
public interface IModule
{
int Cid {get;}
string ModuleName { get;}
}
//Interface som alla moduleRepository implementerar.
public interface IModuleRepository<T>
{
T Load();
}
//Bas klass
public class ModuleRepository<T> : IModuleRepository<T>
public virtual T Load()
{
return default(T);
}
}
//Klass för att skapa Logger objekt.
public class LoggerRepository : ModuleRepository<Logger>
{
public override Logger Load()
{
return base.Load();
}
}
//Bas klass.
public class Module<T> : IModule
{
public int Cid
{
get { throw new Exception("The method or operation is not implemented."); }
}

public string ModuleName
{
get { throw new Exception("The method or operation is not implemented."); }
}
}
public class Logger : Module<Logger>
{
public Logger()
{

}
}
</code>


Svara

Sv: Hjälp med generell implementation

Postades av 2006-11-28 09:32:16 - Patrik H


Kanske du kan få lite ideer härifrån,

http://www.ayende.com/Blog/ThinkingAboutTheRepositoryAPI.aspx


Svara

Sv: Hjälp med generell implementation

Postades av 2006-11-28 13:51:04 - Johan Normén

oj, som det ser ut nu kommer du få problem med spårbarhet.
Tänk på att du skriver kod för andra inte bara dig själv, ha det som utgångspunkt så brukar man
oftast skriva en bättre kod.

I ditt fall skulle jag om du nu måste göra som du gör skicka in en sträng som innehåller vad det är du vill ha ut så man lätt kan förstå vad du skall hämta.
Ex. ModuleRepository MR = GetRepositoryByCid("Logger");

Antar att du försöker göra en ObjectFactory...

Jag skulle gjort en XML-fil som Databas för de objekt jag skall kunna skapa dynamiskt.
Sedan skulle jag ha nyckelord för dessa. Jag skulle ladda in hela XMLen när min MR skapas och även ladda in alla objekten o lägga dem i cache... (om de skall användas ofta) annars hade jag laddat in XML-.filen och lagt värderna i en collection för snabbare access...

Sedan nyttja Activator.CreateInsance hanteringen för att skapa objekten vid Load.
Du kan nyttja Geberics här :-) mkt snyggt... Då slipper du en massa casting o trams...

Leta lite på MS Provider pattern eller IoC /DI så kommer du få mer idéer vhur jag menar...



Mvh Johan


Svara

Sv:Hjälp med generell implementation

Postades av 2006-11-28 15:24:01 - Marcus Johansson

Jo visst håller med. Detta är endast exempel kod. Ska googla lite.

Tack!


Svara

Sv: Hjälp med generell implementation

Postades av 2006-11-28 15:30:35 - Marcus Johansson

<code>
//Denna funkar bra...

string sModuleName = "MyPrettyOne";
Type typeClass = System.Type.GetType(sModuleName);
return (ModuleRepository)System.Activator.CreateInstance(typeClass);

//..men finns det inget sätt att lösa det genom denna princip? (kanske en dum fråga med tanke på ditt svar)

string sModuleName = "MyPrettyOne";
Type typeClass = System.Type.GetType(sModuleName);
ModuleRepository<typeClass> MR = new ...

</code>


Svara

Nyligen

  • 18:37 Remove the bumper in AUDI
  • 15:35 Chicken road crash game
  • 21:41 Automotive Services UK
  • 20:44 Erfarenhet av CBD-olja mot sömnpro
  • 12:13 Sex Dolls for Sale
  • 19:42 Online Casinos for Haitian Players
  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 893
27 965
271 778
548
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies