webForumDet fria alternativet

Egen formatter med IFormatter

.NETur .NET

4 svar · 220 visningar · startad av Gladh

Medlem sedan maj 20012 812 inlägg
Frågan#1

Jag håller på med en Log klass som skall göra livet lättare för mig när jag skall Logga saker från mina program till någon valfri källa.

Jag skulle dock vilja ha en funktion som jag har slitit med i 2 dagara nu och jag fattar inte hur man skall göra.

Det är så att om jag får en Exception i ett object så vill jag göra en Dump av objectets variabler och dess värde. Har tittat på både BinaryFormatter() och SoapFormatter() och konstaterat att det är försvårt att utläsa värden ur deras resultat. Helst så vill jag ha det som XMLSerialization presenterar resultatet. Men den har ju begränsningen att den endast tar Publica värden, jag behöver även skriva ner värden som är privata.

Har försökt mig på att skapa en egen Formatter genom att implementera IFormatt interfacet men förstår inte hur jag skall lyckas med det, har försökt hitta något bra exemple på nätet men det verkar omöjligt att hitta ett bra exemple. Tittade i koden för BinaryFormatter och SoapFormatter men de använd sig av object ObjectWriter() som tyvärr inte finns tillgänglig utanför assemblyn (eller nått).

Är det någon som har gjort en egen Formatter genom att implementera IFormatter interfacet och kan ge lite tips hur jag skall gå vidare?

- Magnus

Medlem sedan apr. 20012 266 inlägg
#2

Kan du inte försöka uppnå det du vill med Reflections? Dvs dynamiskt läsa av de värden som klassen innehåller, dock är det väl samma problem som med XMLSerialization att den bara tar publika värden.

Medlem sedan maj 20012 812 inlägg
#3

Jag har gjort en fullösning med reflections just nu (och den kan även ta private värden) problemet är att det blir jobbigt att använda reflections för att plocka ur värden ur alla de olika list typer som finns.

Än så länge har jag de vanliga objekten, objekt som implementerat IDictonary samt objekt som implementerat IEnumerable.

Det känns dock som jag kommer att missa något viktigt interace som kan lagra data, därför hade det varit bra om man hade fått till serializeringen eftersom (nästan) alla objekt i .NET "har inbyggdt stöd" för serializering.

- Magnus

Medlem sedan juli 20011 304 inlägg
#4

Har inte pysslat med det där riktigt men kan du kanske få lite inspiration av nån existerande lösning, typ llog4net eller liknande? :)

Medlem sedan okt. 2002188 inlägg
#5

Hej

Jag har använt log4net som är rackans nice..

log4net

134 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)