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;
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.
//------------------------------------------------------------
// 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
- TcpTransportElement.cs
- NetNamedPipeSecurityMode.cs
- DetailsViewUpdatedEventArgs.cs
- IndexOutOfRangeException.cs
- EventlogProvider.cs
- CreateUserErrorEventArgs.cs
- SelectorItemAutomationPeer.cs
- TextWriterTraceListener.cs
- Config.cs
- DbgUtil.cs
- xsdvalidator.cs
- ToolStripContentPanel.cs
- GeneralTransformGroup.cs
- WindowsGraphics2.cs
- WindowsFormsEditorServiceHelper.cs
- ResizeGrip.cs
- FixedPage.cs
- AstNode.cs
- DeviceContext2.cs
- DiscoveryDocument.cs
- TextEditorThreadLocalStore.cs
- HandlerMappingMemo.cs
- ListViewItem.cs
- TextProviderWrapper.cs
- Brushes.cs
- MediaEntryAttribute.cs
- SqlBooleanMismatchVisitor.cs
- TransformerInfoCollection.cs
- BaseAutoFormat.cs
- ExternalException.cs
- WorkflowApplicationUnhandledExceptionEventArgs.cs
- SqlMethodCallConverter.cs
- TypeHelper.cs
- XmlDataSource.cs
- EDesignUtil.cs
- CheckBox.cs
- SmtpFailedRecipientException.cs
- LoadGrammarCompletedEventArgs.cs
- _LazyAsyncResult.cs
- ImageListStreamer.cs
- FileSystemWatcher.cs
- FrameworkElementAutomationPeer.cs
- WebPartMenu.cs
- UpdatePanelTriggerCollection.cs
- ZipIOExtraFieldElement.cs
- BuildResult.cs
- AuthenticationManager.cs
- RuntimeConfigLKG.cs
- XmlBoundElement.cs
- DataGridViewLinkCell.cs
- VisualStyleTypesAndProperties.cs
- SoapInteropTypes.cs
- KeyValueConfigurationElement.cs
- SystemWebSectionGroup.cs
- HttpCacheVaryByContentEncodings.cs
- ResourceExpression.cs
- Camera.cs
- SecureEnvironment.cs
- Message.cs
- XmlSchemaAnnotation.cs
- TextTrailingWordEllipsis.cs
- XmlResolver.cs
- HttpCachePolicyElement.cs
- Listbox.cs
- WebPartCollection.cs
- SecurityDescriptor.cs
- Int64.cs
- ServiceMetadataPublishingElement.cs
- OutputCacheSettingsSection.cs
- TraceContextEventArgs.cs
- ToolStripGripRenderEventArgs.cs
- SqlPersonalizationProvider.cs
- WindowsFormsSectionHandler.cs
- GridViewRow.cs
- InkCollectionBehavior.cs
- CodeDirectionExpression.cs
- DelegatingConfigHost.cs
- DataGridViewRowsRemovedEventArgs.cs
- SamlNameIdentifierClaimResource.cs
- Attributes.cs
- QueryStringHandler.cs
- DesignerActionPropertyItem.cs
- XmlCDATASection.cs
- XsltCompileContext.cs
- ToolStripSeparator.cs
- CommonDialog.cs
- TlsnegoTokenAuthenticator.cs
- DynamicDiscoveryDocument.cs
- WebPartEditorCancelVerb.cs
- SchemaDeclBase.cs
- RootBrowserWindowProxy.cs
- PrinterResolution.cs
- ScriptManager.cs
- IDispatchConstantAttribute.cs
- RepeaterItemEventArgs.cs
- InternalConfigEventArgs.cs
- PhonemeConverter.cs
- SamlAuthorityBinding.cs
- SchemaMerger.cs
- GatewayDefinition.cs