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;
        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
- PathParser.cs
- AutomationPropertyInfo.cs
- KeyEvent.cs
- _UriTypeConverter.cs
- ListViewItem.cs
- SQLChars.cs
- ByteRangeDownloader.cs
- ConfigXmlText.cs
- HostingPreferredMapPath.cs
- BindingCompleteEventArgs.cs
- SrgsRuleRef.cs
- Invariant.cs
- ListItemCollection.cs
- DefaultMemberAttribute.cs
- CroppedBitmap.cs
- Int64Storage.cs
- Rect3D.cs
- Html32TextWriter.cs
- TextSelection.cs
- HeaderUtility.cs
- ToolStripPanelCell.cs
- XPathChildIterator.cs
- DocumentXmlWriter.cs
- ItemCheckedEvent.cs
- SchemaInfo.cs
- Table.cs
- ColorConvertedBitmap.cs
- SerTrace.cs
- TemplateParser.cs
- AuthenticateEventArgs.cs
- CompilerLocalReference.cs
- HashAlgorithm.cs
- InstanceHandleConflictException.cs
- TextModifierScope.cs
- XmlTextReader.cs
- ISO2022Encoding.cs
- DropDownButton.cs
- EndEvent.cs
- StructuralObject.cs
- CompiledIdentityConstraint.cs
- XmlNamespaceManager.cs
- BitmapEffectInput.cs
- BitmapEffectInput.cs
- SafePEFileHandle.cs
- TypeNameParser.cs
- TableItemPattern.cs
- DbException.cs
- RoleServiceManager.cs
- ToolStripTextBox.cs
- IntSecurity.cs
- XmlEntity.cs
- SecurityResources.cs
- SafeThemeHandle.cs
- Mapping.cs
- AmbientLight.cs
- ListBindingHelper.cs
- DesignTimeVisibleAttribute.cs
- ByteArrayHelperWithString.cs
- DataConnectionHelper.cs
- AdRotator.cs
- DiscriminatorMap.cs
- UIElement.cs
- Repeater.cs
- ButtonField.cs
- BeginStoryboard.cs
- Compiler.cs
- ConstNode.cs
- InputQueueChannelAcceptor.cs
- EntityTypeEmitter.cs
- SystemIcmpV6Statistics.cs
- CustomWebEventKey.cs
- OrderedDictionary.cs
- PeerNameRegistration.cs
- XmlnsPrefixAttribute.cs
- BufferModesCollection.cs
- StringExpressionSet.cs
- PropertyDescriptor.cs
- ConnectionOrientedTransportBindingElement.cs
- NegatedCellConstant.cs
- ConditionalDesigner.cs
- _ProxyChain.cs
- SqlDeflator.cs
- MutexSecurity.cs
- HostExecutionContextManager.cs
- SliderAutomationPeer.cs
- WebPartVerb.cs
- TreeBuilderXamlTranslator.cs
- DataBinder.cs
- TaskExceptionHolder.cs
- FillRuleValidation.cs
- Size3D.cs
- ArrayElementGridEntry.cs
- CookieProtection.cs
- DelegatingTypeDescriptionProvider.cs
- AssociationTypeEmitter.cs
- DataGridComponentEditor.cs
- ImageListDesigner.cs
- DbgUtil.cs
- OrderedDictionary.cs
- XmlSchemaDatatype.cs