public void WriteStartMember (XamlMember property)
{
if (property == null)
throw new ArgumentNullException ("property");
manager.StartMember ();
if (property == XamlLanguage.PositionalParameters)
// this is an exception that indicates the state manager to accept more than values within this member.
manager.AcceptMultipleValues = true;
var state = object_states.Peek ();
var wpl = state.WrittenProperties;
if (wpl.Any (wp => wp.Member == property))
throw new XamlDuplicateMemberException (String.Format ("Property '{0}' is already set to this '{1}' object", property, object_states.Peek ().Type));
wpl.Add (new MemberAndValue (property));
if (property == XamlLanguage.PositionalParameters)
state.PositionalParameterIndex = 0;
OnWriteStartMember (property);
}