Har idag ett Ap-lager och ett Db-lager vilka ligger i varsitt projekt i samma solution. Antar att du har Company klassen i ditt Ap-lager solution!?Hur skickar jag ett objekt mellan två dll:er (två projekt)?
Nu vill jag skicka ett objekt som representerar ett företag, från Ap-lagret till en metod
i Db-lagret som skall spara objektets data i en xmlfil.
Eftersom jag inte kan ha en referens till Ap-lagret i Db-lagret så kan jag väl inte
heller typa om det inskickade objektet till Company i Db-lagret? Det är därför jag tar
emot objektet som object (se "public string TestCmp(object cmp)" nedan).
Om jag i TestCmp kör cmp.ToString() så får jag "AppLayer.Company"; den ser mao att det är ett Company-objekt.
Problemet är att jag inte kommer åt objektets variabler och metoder. Går inte detta?
Denna metod ligger i klassen Company i Ap-lagret:
<code>
public string Test()
{
DataLayer.XML oXml = new DataLayer.XML();
return oXml.TestCmp(this);
}
</code>
Denna metod ligger i klassen XML i Db-lagret:
<code>
public string TestCmp(object cmp)
{
return (string)cmp.CompanyName;
}
</code>
Jag har funderat på att skapa ett DataSet av företaget i företagsobjektet, och skicka
detta till metoden TestCmp i Db-lagret om ovanstående inte går att lösa. Verkar det
vettigt?
Tack på förhand,
//MartinSv: Hur skickar jag ett objekt mellan två dll:er (två projekt)?
Du kan göra ett tredje projekt i din solution som tex heter Common.
I Common lägger du alla dina typade klasser så som Company.
Du refererar till Common ifrån ditt Ap-lager och Db-Lager. På så sätt kommer både Db och Ap-lgaret åt dina typade objekt.
Eller så lägger du dina typade klasser i Db-lagret.
/Fredrik Normén NSQUARED2
http://www.nsquared2.net