C# Práce s třídami z různých jmenných prostorů – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

C# Práce s třídami z různých jmenných prostorů – .NET – Fórum – Programujte.comC# Práce s třídami z různých jmenných prostorů – .NET – Fórum – Programujte.com

 

21. 6. 2011   #1
-
0
-

Dobrý den,
Existuje jmenný prostor (namespace) Company.Service01, který obsahuje třídy a rozhraní.
Existuje jmenný prostor (namespace) Company.Service02, který obsahuje třídy a rozhraní.

Oba prostory mají stejnou strukutru, obsahují stejné třídy a rozhraní.

Potřebuji nějakým způsobem zajistit to, abych mohl pracovat z třídou tohoto
jmeného prostoru v závislosti na vstupním parametru programu.

Je to možné, existuje na to nějaká technika?
Cílem je to, abych nemusel opakovat stejný kód n-krát podle počtu jmenných prostorů.

Příklad:
soubor01.cs
namespace Company.Service0X
{
public interface Eso9Port {...}
public partial class FaultInfo {...}
public interface Eso9PortChannel {...}
public partial class Eso9PortClient {...}
}

soubor02.cs
namespace Company
{
class Program
{
static void Main(string[] args)
{
if (args[0] == "01")
{
MultiService m = new MultiService();
m.CreateOrder();
}
else if (args[0] == "02")
{
MultiService m = new MultiService();
m.CreateOrder();
}
else if (args[0] == "03")
{
MultiService m = new MultiService();
m.CreateOrder();
}
}
}

public class MultiService
{
public void CreateOrder()
{
// Prace s instanci tridy Company.Service0X.Eso9PortClient v zavisloti na parametru v tride Program
Company.Service0X.Eso9PortClient x = new Company.Service0X.Eso9PortClient();
string xx = x.orders
...
}
}
}

Předem Děkuji za odpověď.

Nahlásit jako SPAM
IP: 213.226.250.–
liborb
~ Redaktor
+18
Guru
21. 6. 2011   #2
-
0
-

Tady by sis mohl vystačit s polymorfismem.

Nahlásit jako SPAM
IP: 78.80.52.–
21. 6. 2011   #3
-
0
-

To liborb :
Ahoj, mohl bys být konkrétnější prosím. Děkuji.

Nahlásit jako SPAM
IP: 213.226.250.–
KIIV
~ Moderátor
+43
God of flame
21. 6. 2011   #4
-
0
-

To lada_vyvojar : google bude konkretnejsi - je to obecny pojem v OOP

Nahlásit jako SPAM
IP: 212.136.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
PeterM0
Newbie
25. 6. 2011   #5
-
0
-

Namiesto toho aby ste poradili napisete najdi si .....

Osobne by som vytvoril triedu a od nej dedil a pretazoval metody a na zaklade vstupu by si vytvaral instancie odvodenej triedy v ktorej by boli prepisane metody rodica podla toho ako potrebujes ...a nepotreboval by si viac mennych priestorov...

Nahlásit jako SPAM
IP: 78.98.93.–
KIIV
~ Moderátor
+43
God of flame
25. 6. 2011   #6
-
0
-

To PeterM : a co myslis ze delam ja kdyz neco nevim pri programovani? zacnu hnedka obesilat 10 for na netu at se vsichni muzou strhat, kdyz by mi stacil jeden jedinej dotaz na google?

( mimochodem, kdyz ctu tvuj prispevek tak si mu zase tak moc nepomohl - ale aspon ho to kopne k tomu hledani ;) )

Ve zkratce funguje polymorfizmus tak, ze je nadrazena trida, ktera definuje takzvane rozhrani (tj. spolecne vlastnosti vsech potomku) a to s modifikatorem virtual. Virtual zpusobi, ze se pri volani metody zjisti, nad jakym z objektu se metoda vola, a zavola se ta spravna. Staci pak tedy mit hlavni tridu s rozhranim, nekolik odvozenych, ktere definuji vlastni funkcionalitu pro to rozhrani, a treba kontejner vector<hlavni *>, do ktereho se daji narvat i tridy potomku. Pak jen projit cely vektor a volat iter->print() - pricemz print musi byt definovan jako virtual a rovnou vytiskne spravne hlasky pro kazdy objekt (nemusi se nic ani pretypovavat)

akorat je to zmineno pro C++ - v C# to muze byt klidne lehce odlisne

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
PeterM0
Newbie
25. 6. 2011   #7
-
0
-

To KIIV : To ma v tej chvilke nenapadlo....

Nahlásit jako SPAM
IP: 78.98.93.–
Petrroll0
Stálý člen
25. 6. 2011   #8
-
0
-

2KIIV: Na tohle se IMHO více hodí použít opravdové rozhraní (Interface). Je to jednodušší, modulárnější a IMHO elegantnější.

Nahlásit jako SPAM
IP: 92.62.224.–
KIIV
~ Moderátor
+43
God of flame
25. 6. 2011   #9
-
0
-

To Petrroll : asi ano .. s C# nedelam

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 25 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý