У меня есть блок кода, который сериализует тип в 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);
}
Это прекрасно работает, за исключением того, что я хочу, чтобы это делалось только для примитивных типов, таких как int
, double
, bool
и т. Д., И других типов, которые не являются примитивными, но могут быть легко сериализованы, как string
, Я хочу, чтобы он игнорировал все остальное, например списки и другие пользовательские типы.
Кто-нибудь может подсказать, как мне это сделать? Или мне нужно указать типы, которые я хочу разрешить где-нибудь, и включить тип свойства, чтобы узнать, разрешено ли оно? Это немного грязно, так что было бы неплохо, если бы я нашел более аккуратный способ.