private static string AttributeToString(Attribute obj)
{
Type attrType;
StringBuilder sb_AttrParts;
StringBuilder sb_Attributes = new StringBuilder();
sb_AttrParts = new StringBuilder();
attrType = obj.GetType();
PropertyInfo[] props = attrType.GetProperties();
sb_AttrParts.Append("[");
sb_AttrParts.Append(attrType.Name);
sb_AttrParts.Append("(");
bool first = true;
foreach (PropertyInfo pi in props)
{
try
{
if (pi.Name == "TypeId")
continue;
object value = pi.GetValue(obj, null);
if (value == null)
continue;
if (!first)
sb_AttrParts.Append(",");
else
first = false;
sb_AttrParts.Append(pi.Name);
sb_AttrParts.Append("=");
if (value != null)
{
if (value.GetType() == typeof(string))
sb_AttrParts.Append("\"" + value.ToString() + "\"");
else if (value.GetType() == typeof(bool))
{
if ((bool)value)
sb_AttrParts.Append("true");
else
sb_AttrParts.Append("false");
}
else
sb_AttrParts.Append(value.ToString());
}
}
catch { continue; }
}
sb_AttrParts.Append(")");
sb_AttrParts.Append("]");
sb_Attributes.Append(sb_AttrParts);
return sb_Attributes.ToString();
}
Wednesday, 22 August 2012
Text template: Attribute writer
Here’s a function I wrote that can take an attribute as a parameter and return its string equivalence into a text template. This is useful if you need to generate data annotations attributes for your metadata class but will work anywhere you need to output an attribute instance.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment