You've already forked linux-packaging-mono
							
							
		
			
	
	
		
			73 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			73 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
|   | // <copyright> | |||
|  | //   Copyright (c) Microsoft Corporation.  All rights reserved. | |||
|  | // </copyright> | |||
|  | 
 | |||
|  | namespace Microsoft.Build.Tasks.Xaml | |||
|  | { | |||
|  |     using System; | |||
|  |     using System.Collections; | |||
|  |     using Microsoft.Build.Framework; | |||
|  | 
 | |||
|  |     // In Dev10, we allowed use of non-remotable ITaskItems. While there's not really any good scenario | |||
|  |     // for those, we need to support that for back-compat. So we wrap each provided TaskItems in an MBRO. | |||
|  |     internal class DelegatingTaskItem : MarshalByRefObject, ITaskItem | |||
|  |     { | |||
|  |         private ITaskItem underlyingItem; | |||
|  | 
 | |||
|  |         // This is different from TaskItem.ctor(ITaskItem): it's a wrapper, not a clone. | |||
|  |         // So any changes are propagated back to the original object. | |||
|  |         public DelegatingTaskItem(ITaskItem underlyingItem) | |||
|  |         { | |||
|  |             this.underlyingItem = underlyingItem; | |||
|  |         } | |||
|  | 
 | |||
|  |         public string ItemSpec | |||
|  |         { | |||
|  |             get | |||
|  |             { | |||
|  |                 return this.underlyingItem.ItemSpec; | |||
|  |             } | |||
|  | 
 | |||
|  |             set | |||
|  |             { | |||
|  |                 this.underlyingItem.ItemSpec = value; | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         public int MetadataCount | |||
|  |         { | |||
|  |             get { return this.underlyingItem.MetadataCount; } | |||
|  |         } | |||
|  | 
 | |||
|  |         public ICollection MetadataNames | |||
|  |         { | |||
|  |             get { return this.underlyingItem.MetadataNames; } | |||
|  |         } | |||
|  | 
 | |||
|  |         public IDictionary CloneCustomMetadata() | |||
|  |         { | |||
|  |             return this.underlyingItem.CloneCustomMetadata(); | |||
|  |         } | |||
|  | 
 | |||
|  |         public void CopyMetadataTo(ITaskItem destinationItem) | |||
|  |         { | |||
|  |             this.underlyingItem.CopyMetadataTo(destinationItem); | |||
|  |         } | |||
|  | 
 | |||
|  |         public string GetMetadata(string metadataName) | |||
|  |         { | |||
|  |             return this.underlyingItem.GetMetadata(metadataName); | |||
|  |         } | |||
|  | 
 | |||
|  |         public void RemoveMetadata(string metadataName) | |||
|  |         { | |||
|  |             this.underlyingItem.RemoveMetadata(metadataName); | |||
|  |         } | |||
|  | 
 | |||
|  |         public void SetMetadata(string metadataName, string metadataValue) | |||
|  |         { | |||
|  |             this.underlyingItem.SetMetadata(metadataName, metadataValue); | |||
|  |         } | |||
|  |     } | |||
|  | } |