Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / XamlBuildTask / Microsoft / Build / Tasks / Xaml / CompilationPass2Task.cs / 1305376 / CompilationPass2Task.cs
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------
namespace Microsoft.Build.Tasks.Xaml
{
using System;
using System.Collections.Generic;
using Microsoft.Build.Framework;
using Microsoft.Build.Utilities;
using System.Reflection;
using System.Runtime;
[Fx.Tag.XamlVisible(true)]
public class CompilationPass2Task : Task
{
public CompilationPass2Task()
{
}
[Fx.Tag.KnownXamlExternal]
public ITaskItem[] ApplicationMarkup { get; set; }
public string AssemblyName
{ get; set; }
[Fx.Tag.KnownXamlExternal]
public ITaskItem[] References { get; set; }
public string LocalAssemblyReference
{ get; set; }
public string RootNamespace
{ get; set; }
public string BuildTaskPath
{ get; set; }
public override bool Execute()
{
AppDomain appDomain = null;
try
{
appDomain = XamlBuildTaskServices.CreateAppDomain("CompilationPass2AppDomain_" + Guid.NewGuid(), BuildTaskPath);
CompilationPass2TaskInternal wrapper = (CompilationPass2TaskInternal)appDomain.CreateInstanceAndUnwrap(
Assembly.GetExecutingAssembly().FullName,
typeof(CompilationPass2TaskInternal).FullName);
PopulateBuildArtifacts(wrapper);
bool ret = wrapper.Execute();
if (!ret)
{
foreach (LogData logData in wrapper.LogData)
{
XamlBuildTaskServices.LogException(
this,
logData.Message,
logData.FileName,
logData.LineNumber,
logData.LinePosition);
}
}
return ret;
}
catch (Exception e)
{
if (Fx.IsFatal(e))
{
throw;
}
XamlBuildTaskServices.LogException(this, e.Message);
return false;
}
finally
{
if (appDomain != null)
{
AppDomain.Unload(appDomain);
}
}
}
void PopulateBuildArtifacts(CompilationPass2TaskInternal wrapper)
{
IList applicationMarkup = new List(this.ApplicationMarkup.Length);
foreach (ITaskItem taskItem in this.ApplicationMarkup)
{
applicationMarkup.Add(taskItem.ItemSpec);
}
wrapper.ApplicationMarkup = applicationMarkup;
IList references = new List(this.References.Length);
foreach (ITaskItem reference in this.References)
{
references.Add(reference.ItemSpec);
}
wrapper.References = references;
wrapper.LocalAssemblyReference = this.LocalAssemblyReference;
wrapper.AssemblyName = this.AssemblyName;
wrapper.RootNamespace = this.RootNamespace;
}
}
}
// 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
- UntypedNullExpression.cs
- BuildProvider.cs
- ConvertTextFrag.cs
- TraceListeners.cs
- DataGrid.cs
- GcHandle.cs
- AmbientProperties.cs
- DataRowView.cs
- ExcludeFromCodeCoverageAttribute.cs
- AlternateViewCollection.cs
- ImageKeyConverter.cs
- EncodingNLS.cs
- WebConfigurationHostFileChange.cs
- InputScopeNameConverter.cs
- ResourceExpression.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- TableLayoutCellPaintEventArgs.cs
- DataGridViewTextBoxEditingControl.cs
- GeneralTransform3DCollection.cs
- SessionParameter.cs
- DocumentViewerConstants.cs
- ComplexLine.cs
- CfgSemanticTag.cs
- sqlstateclientmanager.cs
- PseudoWebRequest.cs
- GeneralTransform3D.cs
- Preprocessor.cs
- OdbcParameterCollection.cs
- MenuItemStyle.cs
- EventListenerClientSide.cs
- LocalizedNameDescriptionPair.cs
- ConnectionStringsExpressionBuilder.cs
- PolyLineSegment.cs
- Parsers.cs
- Interop.cs
- SharedMemory.cs
- FileStream.cs
- ConnectionConsumerAttribute.cs
- ModifierKeysValueSerializer.cs
- ConsoleTraceListener.cs
- DifferencingCollection.cs
- Cursor.cs
- SiteMapNode.cs
- ViewManagerAttribute.cs
- TimelineCollection.cs
- TransactionScope.cs
- HtmlTableRowCollection.cs
- URLMembershipCondition.cs
- DynamicFilterExpression.cs
- Brush.cs
- DynamicMethod.cs
- ToolStripRenderEventArgs.cs
- HyperLinkField.cs
- QuaternionRotation3D.cs
- Pkcs7Signer.cs
- TreeViewHitTestInfo.cs
- CodeDelegateCreateExpression.cs
- NamedPipeHostedTransportConfiguration.cs
- XmlRawWriterWrapper.cs
- PagerSettings.cs
- LineGeometry.cs
- ApplicationSecurityInfo.cs
- PropertyItemInternal.cs
- MemberAccessException.cs
- TempFiles.cs
- XhtmlBasicLinkAdapter.cs
- QilUnary.cs
- COM2PropertyDescriptor.cs
- Assert.cs
- DbInsertCommandTree.cs
- MsmqTransportElement.cs
- DocumentSchemaValidator.cs
- EmbeddedMailObject.cs
- CellQuery.cs
- OrCondition.cs
- Image.cs
- HtmlUtf8RawTextWriter.cs
- RegexCapture.cs
- cache.cs
- Matrix.cs
- COM2IDispatchConverter.cs
- ItemTypeToolStripMenuItem.cs
- HtmlInputImage.cs
- ToolStripDesignerAvailabilityAttribute.cs
- unsafenativemethodsother.cs
- CustomDictionarySources.cs
- RoleServiceManager.cs
- SettingsProperty.cs
- StateChangeEvent.cs
- CellTreeNodeVisitors.cs
- WebBrowserSiteBase.cs
- Setter.cs
- RegionInfo.cs
- ListViewItemMouseHoverEvent.cs
- RoleManagerEventArgs.cs
- TableLayoutPanel.cs
- DragStartedEventArgs.cs
- MachineSettingsSection.cs
- DbConnectionPool.cs
- DirtyTextRange.cs