Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Xaml.Hosting / System / Xaml / Hosting / XamlBuildProvider.cs / 1305376 / XamlBuildProvider.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.Xaml.Hosting { using System; using System.Xml; using System.Web; using System.Web.Hosting; using System.Web.Compilation; using System.CodeDom.Compiler; using System.Collections.Generic; using System.IO; using System.Xaml; using System.Diagnostics.CodeAnalysis; using System.Runtime; using System.Reflection; using System.Text; [BuildProviderAppliesTo(BuildProviderAppliesTo.Web)] public class XamlBuildProvider : BuildProvider { [Fx.Tag.Throws(typeof(TypeLoadException), "The type resolution of the root element failed.")] public override Type GetGeneratedType(CompilerResults results) { try { using (Stream xamlStream = base.OpenStream()) { XmlReader xmlReader = XmlReader.Create(xamlStream); XamlXmlReader xamlReader = new XamlXmlReader(xmlReader); // Read to the root object while (xamlReader.Read()) { if (xamlReader.NodeType == XamlNodeType.StartObject) { if (xamlReader.Type.IsUnknown) { StringBuilder typeName = new StringBuilder(); AppendTypeName(xamlReader.Type, typeName); throw FxTrace.Exception.AsError(new TypeLoadException(SR.CouldNotResolveType(typeName))); } return xamlReader.Type.UnderlyingType; } } throw FxTrace.Exception.AsError(new HttpCompileException(SR.UnexpectedEof)); } } catch (XamlParseException ex) { throw FxTrace.Exception.AsError(new HttpCompileException(ex.Message, ex)); } } public override BuildProviderResultFlags GetResultFlags(CompilerResults results) { return BuildProviderResultFlags.ShutdownAppDomainOnChange; } private void AppendTypeName(XamlType xamlType, StringBuilder sb) { if (!string.IsNullOrEmpty(xamlType.PreferredXamlNamespace)) { sb.Append("{"); sb.Append(xamlType.PreferredXamlNamespace); sb.Append("}"); } sb.Append(xamlType.Name); if (xamlType.IsGeneric) { sb.Append("("); for (int i = 0; i < xamlType.TypeArguments.Count; i++) { AppendTypeName(xamlType.TypeArguments[i], sb); if (i < xamlType.TypeArguments.Count - 1) { sb.Append(", "); } } sb.Append(")"); } } } } // 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
- EmptyEnumerable.cs
- Metafile.cs
- ListViewHitTestInfo.cs
- ProfileModule.cs
- StylusButton.cs
- MessageDirection.cs
- _ChunkParse.cs
- ErrorFormatterPage.cs
- SQLBytes.cs
- GPPOINTF.cs
- FontUnitConverter.cs
- PolyQuadraticBezierSegment.cs
- StringInfo.cs
- List.cs
- typedescriptorpermission.cs
- SafeNativeMethods.cs
- FormatSelectingMessageInspector.cs
- TextEditorCharacters.cs
- GenericArgumentsUpdater.cs
- DisposableCollectionWrapper.cs
- TypeUtil.cs
- SoapIgnoreAttribute.cs
- BeginEvent.cs
- Lease.cs
- BamlRecordWriter.cs
- KeyConstraint.cs
- ArcSegment.cs
- MessageEncoder.cs
- MouseActionValueSerializer.cs
- Mouse.cs
- EntitySqlException.cs
- ConfigUtil.cs
- UnhandledExceptionEventArgs.cs
- XmlAttributeOverrides.cs
- AnnotationDocumentPaginator.cs
- ProxyDataContractResolver.cs
- DesignerTransactionCloseEvent.cs
- PropertyRecord.cs
- TypeReference.cs
- sqlstateclientmanager.cs
- WebPartCancelEventArgs.cs
- PolyBezierSegmentFigureLogic.cs
- Button.cs
- PartBasedPackageProperties.cs
- xamlnodes.cs
- FileSecurity.cs
- ReachPageContentSerializer.cs
- FontUnit.cs
- CustomValidator.cs
- UInt64.cs
- ArgumentNullException.cs
- SiteMapNodeCollection.cs
- TdsParserStaticMethods.cs
- EntityDataSourceMemberPath.cs
- ConnectionManagementElementCollection.cs
- EdmToObjectNamespaceMap.cs
- DataBindingList.cs
- SectionInput.cs
- ColorAnimationUsingKeyFrames.cs
- ServiceModelActivity.cs
- ChannelBinding.cs
- DataServiceEntityAttribute.cs
- MenuRenderer.cs
- InternalCache.cs
- BigInt.cs
- SafeFreeMibTable.cs
- CounterSample.cs
- ApplicationContext.cs
- LayoutTableCell.cs
- securitycriticaldataClass.cs
- JumpTask.cs
- XmlBaseWriter.cs
- SQLMoney.cs
- TcpChannelHelper.cs
- _ProxyChain.cs
- DateTime.cs
- Formatter.cs
- SystemGatewayIPAddressInformation.cs
- TextComposition.cs
- MimeWriter.cs
- SchemaExporter.cs
- PowerModeChangedEventArgs.cs
- ValueTypeFixupInfo.cs
- PackageDigitalSignatureManager.cs
- ToolStripTextBox.cs
- ReverseInheritProperty.cs
- HttpDebugHandler.cs
- PathHelper.cs
- AssociationSet.cs
- ObjectAnimationUsingKeyFrames.cs
- WebPartMinimizeVerb.cs
- unitconverter.cs
- Cursor.cs
- Italic.cs
- NotConverter.cs
- SchemaComplexType.cs
- MLangCodePageEncoding.cs
- ProfileGroupSettings.cs
- IgnoreSection.cs
- Int32Storage.cs