Code:
/ 4.0 / 4.0 / 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.
//------------------------------------------------------------
// 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
- HitTestParameters.cs
- DesignConnectionCollection.cs
- Span.cs
- AlternationConverter.cs
- ConnectionPoolManager.cs
- Control.cs
- Matrix.cs
- IImplicitResourceProvider.cs
- SrgsNameValueTag.cs
- UpDownBase.cs
- PageAsyncTaskManager.cs
- Evidence.cs
- RealProxy.cs
- UnsafeNativeMethodsTablet.cs
- SqlInternalConnectionTds.cs
- InvalidWMPVersionException.cs
- ObjectItemNoOpAssemblyLoader.cs
- DataObjectAttribute.cs
- CurrentChangingEventManager.cs
- FontStyle.cs
- SoapParser.cs
- SignatureDescription.cs
- UrlPath.cs
- CssClassPropertyAttribute.cs
- CultureSpecificCharacterBufferRange.cs
- ContainerControl.cs
- BinaryObjectWriter.cs
- QuotedPrintableStream.cs
- TransactionContextManager.cs
- WebPartManagerInternals.cs
- TextRange.cs
- DnsPermission.cs
- DesignerCatalogPartChrome.cs
- ActivityExecutorDelegateInfo.cs
- PeerNameRecord.cs
- CngProvider.cs
- DeclarationUpdate.cs
- WindowsSlider.cs
- WebBrowser.cs
- Model3DGroup.cs
- DbConnectionPoolIdentity.cs
- InternalControlCollection.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- PropertyGeneratedEventArgs.cs
- NumberFunctions.cs
- UpDownBase.cs
- XamlSerializationHelper.cs
- indexingfiltermarshaler.cs
- SelectionProcessor.cs
- ToolStripPanelCell.cs
- KeyedCollection.cs
- SessionSwitchEventArgs.cs
- TextCompositionEventArgs.cs
- XmlComplianceUtil.cs
- ButtonPopupAdapter.cs
- WindowsToolbarItemAsMenuItem.cs
- CompiledQueryCacheKey.cs
- Graph.cs
- KnownTypeAttribute.cs
- Funcletizer.cs
- Fault.cs
- WindowsGraphics.cs
- DnsPermission.cs
- ApplicationGesture.cs
- XmlDeclaration.cs
- ReadOnlyNameValueCollection.cs
- validationstate.cs
- PlatformCulture.cs
- ConfigurationSectionGroup.cs
- MembershipUser.cs
- FontStretchConverter.cs
- ControlBuilderAttribute.cs
- EntityCollectionChangedParams.cs
- KeyEvent.cs
- ReadWriteSpinLock.cs
- PipeStream.cs
- CompositeActivityMarkupSerializer.cs
- Accessible.cs
- XmlSigningNodeWriter.cs
- HttpProfileGroupBase.cs
- PaperSource.cs
- ScrollItemPattern.cs
- KeyProperty.cs
- LinkLabelLinkClickedEvent.cs
- TextContainerChangeEventArgs.cs
- PopupRootAutomationPeer.cs
- CurrencyWrapper.cs
- Transform3DCollection.cs
- Perspective.cs
- DurableErrorHandler.cs
- safelinkcollection.cs
- NullableConverter.cs
- AccessDataSourceView.cs
- OleDbRowUpdatingEvent.cs
- XamlVector3DCollectionSerializer.cs
- SmtpTransport.cs
- ConnectionPoint.cs
- PipelineModuleStepContainer.cs
- DropSourceBehavior.cs
- VirtualDirectoryMapping.cs