public override void WriteStartObject(XamlType xamlType) { this.ThrowIfDisposed(); if (xamlType == null) { throw new ArgumentNullException("xamlType"); } this._deferringWriter.WriteStartObject(xamlType); if (!this._deferringWriter.Handled) { if (this._nextNodeMustBeEndMember) { string message = System.Xaml.SR.Get("ValueMustBeFollowedByEndMember"); throw this.WithLineInfo(new XamlObjectWriterException(message)); } if (xamlType.IsUnknown) { string str2 = System.Xaml.SR.Get("CantCreateUnknownType", new object[] { xamlType.GetQualifiedName() }); throw this.WithLineInfo(new XamlObjectWriterException(str2)); } if ((this._context.CurrentType != null) && (this._context.CurrentProperty == null)) { string str3 = System.Xaml.SR.Get("NoPropertyInCurrentFrame_SO", new object[] { xamlType.ToString(), this._context.CurrentType.ToString() }); throw this.WithLineInfo(new XamlObjectWriterException(str3)); } this._lastInstance = null; if (this._context.CurrentType != null) { this._context.PushScope(); } this._context.CurrentType = xamlType; if ((this._context.LiveDepth == 1) && (this._rootObjectInstance != null)) { XamlType type = this.GetXamlType(this._rootObjectInstance.GetType()); if (!type.CanAssignTo(this._context.CurrentType)) { throw new XamlParseException(System.Xaml.SR.Get("CantAssignRootInstance", new object[] { type.GetQualifiedName(), xamlType.GetQualifiedName() })); } this._context.CurrentInstance = this._rootObjectInstance; if (this._context.CurrentType.IsCollection || this._context.CurrentType.IsDictionary) { this._context.CurrentCollection = this._rootObjectInstance; } this.Logic_BeginInit(this._context); } } }
public override string ToString() { Debug.Assert(_declaringType != null, "XamlDirective should not call base.ToString"); return(_declaringType.ToString() + "." + Name); }