Att använda downcasting eller operatorer i stil med is är aldrig helt rätt. Helst ska man använda polymorfism istället, så en klasstruktur är väl antagligen inte helt fel att använda. Spontant skulle jag nog rösta för att du hittar på en ContainerContentType, som är en klass som används för alla innehållstyper som innehåller flera olika "filer" och har start/boundary. Exakt hur du löser beror förstås på vad du tänker använda den till.
Jag håller på att parsa en text med Mimestruktur och vill bygga upp en objektstruktur för detta.
Nu till problemet, eller ja hur jag borde lösa det, det finns olika typer av Content-type's plain/text, multipart/alternative osv. Om det bara hade varit så att det var plain/text, multipart/alternative hade man kunnat göra dom till enum's och haft i sin klass
ex:
private ContentType contentType;
Men saken är den att om det är multipart/alternative så kan den ha lite fler attribut till dom som t.ex. boundary="hej hej" vilket inte tillkommer vid text/plain vad jag har fattat det som. Så då blir varje sådan här del specialgjord, hur skall man göra då? lägga in dessa attributen direkt jämte en enum tycker jag inte alls om.
ex:
private ContentType contentType;
private string boundary;
private string start;
Så nu hur skall man göra? Jag har dessa tankar om det, att jag skapar en abstract basklass för ContentType's och sedan dom olika typerna ärver av denna som t.ex. TextPlain, MultipartAlternative som får ha attribut då (properties/getmetoder), sedan måste man kontrollera detta genom att kolla vad det är för typ av objekt, eller skall man lägga in en enum i ContentType objektet för detta? eller kanske lägga enumen i klassen som skall hålla på contenttype objektet?
ex:
private ContentType contentType;
private ContentTypeEnum contenType;
Jag anser nog att man skall kolla vad det är för typ av objekt som i c#
if(mimeDocument.ContentType is PlainText)
....
eller vad är smartast? :S
