03. oktober 2003 - 12:46Der er
12 kommentarer og 1 løsning
DataTable på Compact Framework
I forbindelse med et test projekt, har jeg prøvet at lave en klasse der nedarver fra DataTable. Denne klasse vil jeg så gerne bruge sammen med min PocketPC applikation.
Det virker også fint hvis klassen ligger i samme projekt som applikationen (i.e klassen kommer med i exe filen).
Men flytter jeg klassen over i en anden assebly (i.e klassen kommer i en dll), virker det ikke mere??
(Den eneste fejlmeddelelse jeg kan fremtvinge, er "metode ikke implimenteret")
public class TestDataTable: System.Data.DataTable { public TestDataTable() : base() { } }
Men ellers så se på hvad datatables projekt builds er sat til. Jeg går ud fra at du allerede har lavet en _project_ reference fra main projectet til datatable projectet....
Nu har jeg fået fremtvunget en "System.TypeLoadException":
Her er step-by-step: 1. Opret en "Smart Device Application".
2. Tilføj et "Class Library" projekt.
3. Ændre Class1, så den nedarver fra "System.Data.DataTable".
4. Til Form1's constructor tilføjes: "ClassLibrary1.Class1 class1 = new ClassLibrary1.Class1();"
Wupti, så holder det op med at virke???
Hvis man ændre tilbage så Class1 IKKE nedarver fra DataTable, så virker det igen???
Laver man i stedet en Class2 i "SmartDeviceApplication1", på samme måde som Class1 (altså nedarver fra DataTable), så kan man sagtes bruge den (Class2)????
Jeg syntes der er underligt (og ret ødelæggende for mit program ;-) )
ok. det lyder godt nok lidt mystisk. Bare for at være sikker. de 2 projekter... ligger de i samme solution, med en project reference fra program projektet til dit custom datatable projektet?
nu har jeg prøvet at køre det. med samme fejl... Det ser ud til emulatoren ikke kan finde dit custom datatable. Ved et nærmere kig på project filen og solution filen kan man se at form projectet bliver deploy'et og kopieret et andet sted hen under emulatoren. Men det gør customDatatablet ikke. Det er nok der fejlen opstår. Men hvordan man fikser det ved jeg ikke lige umiddelbart.
så har jeg løst det. du skal ikke tilføje et almindeligt classlibrary project til din solution. istedet sig add new--> smart device application--> vælg Class library istedet for windows application. så bliver det builded og uploadet til din emulator.
Sørme så... Det må da være en bug!? Gad vide om det giver mig problemer, da de samme dll skal bruges på en alm pc.
Jeg takker 1000 gange!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.