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ěď.
Fórum › .NET
C# Práce s třídami z různých jmenných prostorů
To liborb :
Ahoj, mohl bys být konkrétnější prosím. Děkuji.
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...
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
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Java začátečník - práce s třídami v externích souborech — založil Majlo
Zajímavá práce v JAVĚ v různých odvětvích trhu — založil Standart
Uvolneni prostoru na disku — založil Fanatic
Kapacita úložného prostoru — založil Jirka
Jak natočit fotku do prostoru v Fotoshopu ? — založil Toms
Moderátoři diskuze