Eu tenho um bloco de código que serializa um tipo em uma marca de HTML.
Type t = typeof(T); // I pass <T> in as a paramter, where myObj is of type T
tagBuilder.Attributes.Add("class", t.Name);
foreach (PropertyInfo prop in t.GetProperties())
{
object propValue = prop.GetValue(myObj, null);
string stringValue = propValue != null ? propValue.ToString() : String.Empty;
tagBuilder.Attributes.Add(prop.Name, stringValue);
}
Isso funciona muito bem, exceto eu quero apenas fazer isso para tipos primitivos, como int
, double
, bool
etc, e outros tipos que não são primitivos, mas pode ser serializado facilmente como string
. Quero que ele ignore todo o resto, como Listas e outros tipos personalizados.
Alguém pode sugerir como eu faço isso? Ou preciso especificar os tipos que quero permitir em algum lugar e ativar o tipo da propriedade para ver se é permitido? Isso é um pouco confuso, então seria bom se eu tivesse uma maneira mais organizada.
System.String
não é um tipo primitivo.