09. november 2005 - 00:02
Der er
9 kommentarer og 1 løsning
Kan ikke bruge samme objekt fra fil i 2 projekter?
Jeg har lavet et project, hvor jeg opretter en fil. I mit andet projekt vil jeg så gerne indlæse filen, men den siger at objecterne ikke kan type castes. Objeckt type ligger i begge projeket, hvor det kun er namespace som ikke er ens, af gode grunde... Kan det virklig passe at de skal være ens?
Annonceindlæg fra Context&
09. november 2005 - 00:16
#1
Her er noget af det kode jeg bruger: Til at gemme: SaveFileDialog saveLicens = new SaveFileDialog(); saveLicens.Filter = "PRM licens|*.prm"; saveLicens.Title = "Gem PRM licens fil"; if (saveLicens.ShowDialog() == System.Windows.Forms.DialogResult.OK && saveLicens.FileName.Length > 0) { IFormatter formatter = new BinaryFormatter(); Stream stream = new FileStream(saveLicens.FileName, FileMode.Create, FileAccess.Write, FileShare.None); formatter.Serialize(stream, PRMLicens); stream.Close(); } Her er det jeg bruger til at åbne filen med, fra et andet projekt: public Licens OpenLicens(String location) { Stream stream = File.Open(location, FileMode.Open, FileAccess.Read, FileShare.Read); IFormatter formatter = new BinaryFormatter(); Licens obj = (Licens)formatter.Deserialize(stream); stream.Close(); return obj; } Licens.cs er i begge projekter ens.
09. november 2005 - 00:57
#2
ja type cast checker ikke om koden er identisk men om det er præcis samme klasse lav 3 projekter: 1 projekt med de fælles klasse som buildes til en DLL 2 projekter som bruger den DLL og som buildes til hver sin EXE
09. november 2005 - 03:18
#3
using System.Runtime.Serialization; using System.Reflection; ... o = Assembly.Load("Licens").CreateInstance("PRMLicens"); o.GetType().InvokeMember("setLicens(username.Text, company.Text, dato.Text)", BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Instance | BindingFlags.InvokeMethod, null, o, null); Er det sådan man bruger en DLL ? Den laver en null pointer, jeg forstår det ikke helt Men jeg har lavet en dll fil og lagt den sammen med min exe fil
09. november 2005 - 10:16
#4
Kun hvis du vil loade den dynamisk. Du kan også bare tilføje en reference til dit EXE projekt og så bruge klasserne helt normalt !
09. november 2005 - 11:55
#5
Hvordan? i dll filen eller bare i mine 2 andre projekter?
09. november 2005 - 12:09
#6
i dine 2 andre projekter
09. november 2005 - 12:16
#7
ok, tænkte jeg nok :) Hvordan gør man så det rent kode messigt? Jeg har aldrig rodet med dll-filer før, som du nok kan forstå
09. november 2005 - 12:18
#8
du tilføjer en reference til DLL'en du importerer namespacet og så bruger du bare klasserne helt normalt
14. november 2005 - 10:29
#9
svar?
14. november 2005 - 14:26
#10
kommer her
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.