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
- Keywords.cs
- SafeNativeMethods.cs
- AppDomainManager.cs
- Qualifier.cs
- UpnEndpointIdentityExtension.cs
- AppSettingsReader.cs
- TextBoxAutoCompleteSourceConverter.cs
- ExtenderHelpers.cs
- ActiveXHelper.cs
- CommandField.cs
- AtlasWeb.Designer.cs
- SplitterCancelEvent.cs
- ArrayEditor.cs
- TrackBar.cs
- MarshalDirectiveException.cs
- OrderingExpression.cs
- CompilerError.cs
- EntityDataSourceEntitySetNameItem.cs
- StringPropertyBuilder.cs
- XD.cs
- DataGridPageChangedEventArgs.cs
- Translator.cs
- InheritedPropertyChangedEventArgs.cs
- ListView.cs
- RC2CryptoServiceProvider.cs
- DefaultEventAttribute.cs
- datacache.cs
- OleAutBinder.cs
- WindowsToolbar.cs
- NativeMethods.cs
- PrintPageEvent.cs
- Soap11ServerProtocol.cs
- FilteredSchemaElementLookUpTable.cs
- ArgumentFixer.cs
- FactoryGenerator.cs
- PagedDataSource.cs
- TableParagraph.cs
- HMACSHA256.cs
- AsyncContentLoadedEventArgs.cs
- SqlBooleanMismatchVisitor.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- UriParserTemplates.cs
- NaturalLanguageHyphenator.cs
- DataTableNewRowEvent.cs
- BufferedGraphicsManager.cs
- ThemeableAttribute.cs
- CreateParams.cs
- BrowserDefinition.cs
- SelectedDatesCollection.cs
- GenericsInstances.cs
- PerfCounterSection.cs
- SafeArrayTypeMismatchException.cs
- DesignerMetadata.cs
- PhysicalFontFamily.cs
- DocumentSequence.cs
- RuntimeWrappedException.cs
- PiiTraceSource.cs
- SortFieldComparer.cs
- ZipIOFileItemStream.cs
- SqlBulkCopy.cs
- NullExtension.cs
- FormParameter.cs
- BamlTreeUpdater.cs
- SizeF.cs
- ResXResourceReader.cs
- AuthorizationBehavior.cs
- XamlTypeMapper.cs
- EditingMode.cs
- ApplicationFileCodeDomTreeGenerator.cs
- LineBreakRecord.cs
- TopClause.cs
- ReturnEventArgs.cs
- JavascriptCallbackBehaviorAttribute.cs
- cryptoapiTransform.cs
- LOSFormatter.cs
- SessionStateUtil.cs
- ThreadAbortException.cs
- IDReferencePropertyAttribute.cs
- XsltArgumentList.cs
- CryptoApi.cs
- HandledEventArgs.cs
- DataFormats.cs
- CapacityStreamGeometryContext.cs
- EventMap.cs
- EventLogPermissionHolder.cs
- RootBuilder.cs
- sqlcontext.cs
- XmlAnyElementAttributes.cs
- InkCanvasSelectionAdorner.cs
- ValueOfAction.cs
- StateInitializationDesigner.cs
- ProxyGenerator.cs
- GlyphManager.cs
- PictureBox.cs
- VirtualDirectoryMapping.cs
- ChannelServices.cs
- Int16Animation.cs
- IPPacketInformation.cs
- RegexGroupCollection.cs
- InvokeMethodActivityDesigner.cs