Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / XamlBuildTask / Microsoft / Build / Tasks / Xaml / ClassValidator.cs / 1305376 / ClassValidator.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace Microsoft.Build.Tasks.Xaml { using System.Collections.Generic; using System.Diagnostics; using System.Xaml; using System.Runtime; using System.Reflection; using System; using System.Xaml.Schema; class ClassValidator { string xamlFileName; IExceptionLogger buildLogger; IListeventArgs; Assembly localAssembly; string rootNamespace; public ClassValidator(IExceptionLogger buildLogger, string xamlFileName, Assembly localAssembly, string rootNamespace) { this.buildLogger = buildLogger; this.xamlFileName = xamlFileName; this.localAssembly = localAssembly; this.eventArgs = null; this.rootNamespace = rootNamespace; } public bool ValidateXaml(XamlReader xamlReader, bool failOnFirstError, string assemblyName, out IList validationErrors) { if (xamlReader == null) { throw FxTrace.Exception.ArgumentNull("xamlReader"); } validationErrors = null; // We loop through the provided XAML using a XamlValidatingReader to ensure that: // 1. XAML is valid. // 2. All types referenced in XAML are validate-able. At this point, any types defined in the local // assembly should be referenced, so this should be possible. XamlValidatingReader reader = new XamlValidatingReader(xamlReader, this.localAssembly, rootNamespace, assemblyName); reader.OnValidationError += new EventHandler (reader_OnValidationError); while (reader.Read()) { if (this.eventArgs != null && failOnFirstError) { validationErrors = this.eventArgs; return false; } } validationErrors = this.eventArgs; if (validationErrors != null && validationErrors.Count > 0) { return false; } return true; } void reader_OnValidationError(object sender, ValidationEventArgs e) { if (this.eventArgs == null) { this.eventArgs = new List (); } this.eventArgs.Add(new LogData() { FileName = this.xamlFileName, LineNumber = e.LineNumber, LinePosition = e.LinePosition, Message = e.Message }); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace Microsoft.Build.Tasks.Xaml { using System.Collections.Generic; using System.Diagnostics; using System.Xaml; using System.Runtime; using System.Reflection; using System; using System.Xaml.Schema; class ClassValidator { string xamlFileName; IExceptionLogger buildLogger; IList eventArgs; Assembly localAssembly; string rootNamespace; public ClassValidator(IExceptionLogger buildLogger, string xamlFileName, Assembly localAssembly, string rootNamespace) { this.buildLogger = buildLogger; this.xamlFileName = xamlFileName; this.localAssembly = localAssembly; this.eventArgs = null; this.rootNamespace = rootNamespace; } public bool ValidateXaml(XamlReader xamlReader, bool failOnFirstError, string assemblyName, out IList validationErrors) { if (xamlReader == null) { throw FxTrace.Exception.ArgumentNull("xamlReader"); } validationErrors = null; // We loop through the provided XAML using a XamlValidatingReader to ensure that: // 1. XAML is valid. // 2. All types referenced in XAML are validate-able. At this point, any types defined in the local // assembly should be referenced, so this should be possible. XamlValidatingReader reader = new XamlValidatingReader(xamlReader, this.localAssembly, rootNamespace, assemblyName); reader.OnValidationError += new EventHandler (reader_OnValidationError); while (reader.Read()) { if (this.eventArgs != null && failOnFirstError) { validationErrors = this.eventArgs; return false; } } validationErrors = this.eventArgs; if (validationErrors != null && validationErrors.Count > 0) { return false; } return true; } void reader_OnValidationError(object sender, ValidationEventArgs e) { if (this.eventArgs == null) { this.eventArgs = new List (); } this.eventArgs.Add(new LogData() { FileName = this.xamlFileName, LineNumber = e.LineNumber, LinePosition = e.LinePosition, Message = e.Message }); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MeshGeometry3D.cs
- ExecutionContext.cs
- ProtocolsConfigurationEntry.cs
- DataContractSerializerMessageContractImporter.cs
- XPathNavigatorReader.cs
- QilCloneVisitor.cs
- MemberDescriptor.cs
- GeometryModel3D.cs
- PropertyGridView.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- ClientBuildManagerCallback.cs
- mda.cs
- TransformerConfigurationWizardBase.cs
- TransactionContext.cs
- columnmapkeybuilder.cs
- KeyPullup.cs
- ImageField.cs
- DbProviderFactories.cs
- EventWaitHandle.cs
- SqlNodeTypeOperators.cs
- OdbcConnectionString.cs
- Accessors.cs
- EntityDataSourceWrapper.cs
- TextTreeObjectNode.cs
- DataGridCell.cs
- TypeForwardedFromAttribute.cs
- EdmEntityTypeAttribute.cs
- AppModelKnownContentFactory.cs
- bidPrivateBase.cs
- exports.cs
- IdentitySection.cs
- CodeDelegateCreateExpression.cs
- SrgsElementFactory.cs
- WebUtil.cs
- XmlReflectionMember.cs
- SqlClientWrapperSmiStream.cs
- DesignTimeVisibleAttribute.cs
- Thread.cs
- SmtpException.cs
- OperationFormatter.cs
- WebResourceUtil.cs
- Viewport3DVisual.cs
- Fx.cs
- EmptyCollection.cs
- PasswordTextContainer.cs
- DataGridTablesFactory.cs
- ToolStripOverflowButton.cs
- ProviderIncompatibleException.cs
- DataBoundControlActionList.cs
- ComponentConverter.cs
- ListViewItem.cs
- TokenBasedSetEnumerator.cs
- XsltLoader.cs
- AbstractExpressions.cs
- OracleCommandSet.cs
- QueryProcessor.cs
- PageContentCollection.cs
- SizeConverter.cs
- PolicyChain.cs
- WebPartZoneBase.cs
- StringKeyFrameCollection.cs
- SecurityTokenException.cs
- PasswordPropertyTextAttribute.cs
- DataRowView.cs
- infer.cs
- ImageButton.cs
- EntityParameter.cs
- TimeSpanValidator.cs
- DecodeHelper.cs
- SystemWebSectionGroup.cs
- ProcessHostMapPath.cs
- RecognizerBase.cs
- DesignerImageAdapter.cs
- SafeLibraryHandle.cs
- MenuItemCollection.cs
- XmlSerializableWriter.cs
- SerializationAttributes.cs
- AssemblyAttributes.cs
- PasswordTextNavigator.cs
- WebCategoryAttribute.cs
- Table.cs
- ISSmlParser.cs
- ColorBlend.cs
- TypeSemantics.cs
- ScrollEvent.cs
- PersonalizationProvider.cs
- MatrixTransform3D.cs
- LayoutEngine.cs
- XamlTreeBuilder.cs
- RepeaterDesigner.cs
- CodeDOMUtility.cs
- SamlAuthorizationDecisionClaimResource.cs
- RequestChannelBinder.cs
- DataStreams.cs
- TextEditorSpelling.cs
- ProcessModule.cs
- PrintEvent.cs
- Exceptions.cs
- ContextProperty.cs
- DataBinder.cs