Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ArraySubsetEnumerator.cs
- Registry.cs
- DbProviderFactoriesConfigurationHandler.cs
- DBBindings.cs
- HostVisual.cs
- ColorTransformHelper.cs
- DataGridViewCellPaintingEventArgs.cs
- KeyboardNavigation.cs
- BamlLocalizer.cs
- StagingAreaInputItem.cs
- WSSecurityPolicy.cs
- NamedPipeWorkerProcess.cs
- FunctionImportMapping.cs
- FormConverter.cs
- pingexception.cs
- WinEventHandler.cs
- ContentDisposition.cs
- PathSegmentCollection.cs
- PresentationSource.cs
- TextTreeTextElementNode.cs
- ListItemCollection.cs
- ForceCopyBuildProvider.cs
- CorrelationManager.cs
- DoubleAnimation.cs
- TemplatingOptionsDialog.cs
- WebHostedComPlusServiceHost.cs
- CacheOutputQuery.cs
- SystemInfo.cs
- CompensatableTransactionScopeActivityDesigner.cs
- TraceData.cs
- NamespaceImport.cs
- ProxyWebPartManagerDesigner.cs
- RectangleGeometry.cs
- KeysConverter.cs
- SqlCachedBuffer.cs
- DragEventArgs.cs
- LambdaCompiler.Statements.cs
- NativeRecognizer.cs
- MonthCalendar.cs
- RayHitTestParameters.cs
- BackoffTimeoutHelper.cs
- CachedPathData.cs
- AnimationStorage.cs
- ColumnMap.cs
- XmlHierarchicalEnumerable.cs
- WebPartTracker.cs
- SafeMILHandle.cs
- SocketInformation.cs
- NavigationWindow.cs
- BitmapEffectGroup.cs
- PackagePartCollection.cs
- UIAgentRequest.cs
- WebPartEditorCancelVerb.cs
- GeometryDrawing.cs
- TextAdaptor.cs
- TextTreeUndo.cs
- PathFigure.cs
- Calendar.cs
- SettingsPropertyCollection.cs
- WebPartUserCapability.cs
- GenericArgumentsUpdater.cs
- SystemIPAddressInformation.cs
- HttpRuntimeSection.cs
- ObjectStateManagerMetadata.cs
- InternalPermissions.cs
- BrowserCapabilitiesFactory.cs
- XPathNode.cs
- BitmapFrameDecode.cs
- WindowsListViewGroupHelper.cs
- EventLogTraceListener.cs
- QuaternionAnimation.cs
- CompilationLock.cs
- GeometryDrawing.cs
- XmlJsonReader.cs
- RequestQueryProcessor.cs
- ThreadStaticAttribute.cs
- basevalidator.cs
- CompositeScriptReference.cs
- DependencyPropertyChangedEventArgs.cs
- UpdateManifestForBrowserApplication.cs
- XmlDataSourceNodeDescriptor.cs
- ProfileGroupSettingsCollection.cs
- SpecularMaterial.cs
- MulticastDelegate.cs
- SrgsSemanticInterpretationTag.cs
- Lookup.cs
- MergablePropertyAttribute.cs
- WebGetAttribute.cs
- MultitargetingHelpers.cs
- SqlTransaction.cs
- BinaryOperationBinder.cs
- DataBindingExpressionBuilder.cs
- SubpageParaClient.cs
- QueryRewriter.cs
- JavaScriptString.cs
- CorrelationManager.cs
- ObjectAnimationUsingKeyFrames.cs
- CompleteWizardStep.cs
- commandenforcer.cs
- TransactedReceiveScope.cs