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
- SqlDataAdapter.cs
- mactripleDES.cs
- SimpleApplicationHost.cs
- OperatingSystem.cs
- DataBoundControlParameterTarget.cs
- ScriptRegistrationManager.cs
- HostingEnvironment.cs
- QuaternionConverter.cs
- OleAutBinder.cs
- Table.cs
- NoClickablePointException.cs
- DecimalConstantAttribute.cs
- AttributeCollection.cs
- DiagnosticStrings.cs
- BackStopAuthenticationModule.cs
- OutputCacheProfile.cs
- PenLineJoinValidation.cs
- XmlUtil.cs
- SuppressMessageAttribute.cs
- RenderData.cs
- WindowsPrincipal.cs
- ViewValidator.cs
- ArrayList.cs
- AbstractExpressions.cs
- EnumerableCollectionView.cs
- ProviderMetadata.cs
- FrameworkElement.cs
- DataGridCaption.cs
- BoundColumn.cs
- WebException.cs
- StringConverter.cs
- BitStream.cs
- WorkflowMarkupSerializationProvider.cs
- OleDbConnectionFactory.cs
- DataGridViewTopRowAccessibleObject.cs
- X509CertificateRecipientServiceCredential.cs
- SafeNativeMethods.cs
- TrustSection.cs
- EventLogPermission.cs
- BitmapMetadataBlob.cs
- OdbcTransaction.cs
- WebControl.cs
- SafeCryptHandles.cs
- Marshal.cs
- SpecialFolderEnumConverter.cs
- ServiceConfigurationTraceRecord.cs
- LocalBuilder.cs
- HtmlInputSubmit.cs
- GlyphingCache.cs
- HostProtectionPermission.cs
- ConnectionOrientedTransportElement.cs
- ParameterToken.cs
- Wizard.cs
- FilePresentation.cs
- SdlChannelSink.cs
- OleDbConnectionFactory.cs
- SafeNativeHandle.cs
- ImageAttributes.cs
- GradientBrush.cs
- CellNormalizer.cs
- ImageFormat.cs
- DiscriminatorMap.cs
- ProcessModule.cs
- OrderedDictionary.cs
- EmptyImpersonationContext.cs
- COM2IVsPerPropertyBrowsingHandler.cs
- ServiceBusyException.cs
- TwoPhaseCommit.cs
- GeneralTransformGroup.cs
- BodyGlyph.cs
- DiagnosticSection.cs
- SHA1CryptoServiceProvider.cs
- WebBaseEventKeyComparer.cs
- UriTemplateClientFormatter.cs
- SystemIcons.cs
- ImageFormat.cs
- DecodeHelper.cs
- VectorKeyFrameCollection.cs
- HostingEnvironment.cs
- WindowsProgressbar.cs
- RectangleHotSpot.cs
- DateTimeUtil.cs
- WebControl.cs
- CellLabel.cs
- PrinterUnitConvert.cs
- APCustomTypeDescriptor.cs
- SortKey.cs
- FixedDocument.cs
- AssemblyCache.cs
- FormatSettings.cs
- PerformanceCountersBase.cs
- EtwTrace.cs
- ExpressionVisitor.cs
- IPEndPoint.cs
- BaseTreeIterator.cs
- XmlArrayAttribute.cs
- EntitySqlQueryBuilder.cs
- DataListItemEventArgs.cs
- SourceChangedEventArgs.cs
- WebProxyScriptElement.cs