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