Avatar billede thomasandersen Nybegynder
03. oktober 2003 - 12:46 Der 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")

Hvad har jeg overset?
Avatar billede thomasandersen Nybegynder
03. oktober 2003 - 12:49 #1
PS:
Jeg har prøvet at fjerne ALT koden, så klasse ser ud som:

public class TestDataTable: System.Data.DataTable
{
  public TestDataTable()
  {
  }
}
Avatar billede finger Nybegynder
03. oktober 2003 - 14:06 #2
prøv evt:

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....
Avatar billede thomasandersen Nybegynder
03. oktober 2003 - 14:18 #3
Den var oprindeligt:
public TestDataTable() : base("Table1")

Så det er ikke det.

Hvad mener du med nr 2 (projekt builds)?

(Jeg har prøvet både fil og projekt reference, det gav ingen forskel)
Avatar billede nielslbeck Nybegynder
03. oktober 2003 - 14:22 #4
finger har bare misforstået lidt - han tror DataTable er noget du selv har kodet i et andet projekt :-)
Avatar billede thomasandersen Nybegynder
03. oktober 2003 - 14:34 #5
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 ;-) )
Avatar billede thomasandersen Nybegynder
03. oktober 2003 - 14:40 #6
Step 3.5: Tilføjer "ClassLibrary1" til references ;-)
Avatar billede finger Nybegynder
03. oktober 2003 - 14:50 #7
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?
Avatar billede thomasandersen Nybegynder
03. oktober 2003 - 14:58 #8
Ja.

Hvis der er nogle der har tid, så prøv min step-by-step, det taget kun lige et par minuter.
Avatar billede finger Nybegynder
03. oktober 2003 - 15:17 #9
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.
Avatar billede thomasandersen Nybegynder
03. oktober 2003 - 15:25 #10
Okay!! Underligt....

Jeg prøvede også lige at køre det på en "rigtig PocketPC", det var samme problem.

Nå, men nu når jeg desværre ikke at kigge på det mere i denne uge, nu er det jo weekend :-)

Prøver at kigge videre på mandag.

Godweekend.
Avatar billede finger Nybegynder
03. oktober 2003 - 15:25 #11
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.
Avatar billede finger Nybegynder
03. oktober 2003 - 15:26 #12
Avatar billede thomasandersen Nybegynder
06. oktober 2003 - 09:16 #13
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!
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester