public static Property AddOrRetrieve( this PropertyCollection properties, string name, ITypeReference typeReference, ValueUseOption valueUsage, object defaultValue) { if (!properties.ContainsName(name)) { properties.Add(new Property(name, typeReference, valueUsage, defaultValue)); } return(properties.GetItemByName(name)); }