Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / CompMod / System / CodeDOM / Compiler / CompilerResults.cs / 1 / CompilerResults.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.CodeDom.Compiler { using System; using System.CodeDom; using System.Reflection; using System.Collections; using System.Collections.Specialized; using System.Security; using System.Security.Permissions; using System.Security.Policy; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; using System.IO; ////// [Serializable()] [PermissionSet(SecurityAction.InheritanceDemand, Name="FullTrust")] public class CompilerResults { private CompilerErrorCollection errors = new CompilerErrorCollection(); private StringCollection output = new StringCollection(); private Assembly compiledAssembly; private string pathToAssembly; private int nativeCompilerReturnValue; private TempFileCollection tempFiles; private Evidence evidence; ////// Represents the results /// of compilation from the compiler. /// ////// [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")] public CompilerResults(TempFileCollection tempFiles) { this.tempFiles = tempFiles; } ////// Initializes a new instance of ////// that uses the specified /// temporary files. /// /// public TempFileCollection TempFiles { [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")] get { return tempFiles; } [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")] set { tempFiles = value; } } ////// Gets or sets the temporary files to use. /// ////// public Evidence Evidence { [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")] get { Evidence e = null; if (evidence != null) e = CloneEvidence(evidence); return e; } [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")] [SecurityPermissionAttribute( SecurityAction.Demand, ControlEvidence = true )] set { if (value != null) evidence = CloneEvidence(value); else evidence = null; } } ////// Set the evidence for partially trusted scenarios. /// ////// public Assembly CompiledAssembly { [SecurityPermissionAttribute(SecurityAction.Assert, Flags=SecurityPermissionFlag.ControlEvidence)] get { if (compiledAssembly == null && pathToAssembly != null) { AssemblyName assemName = new AssemblyName(); assemName.CodeBase = pathToAssembly; compiledAssembly = Assembly.Load(assemName,evidence); } return compiledAssembly; } [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")] set { compiledAssembly = value; } } ////// The compiled assembly. /// ////// public CompilerErrorCollection Errors { get { return errors; } } ////// Gets or sets the collection of compiler errors. /// ////// public StringCollection Output { [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")] get { return output; } } ////// Gets or sets the compiler output messages. /// ////// public string PathToAssembly { [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")] get { return pathToAssembly; } [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")] set { pathToAssembly = value; } } ////// Gets or sets the path to the assembly. /// ////// public int NativeCompilerReturnValue { get { return nativeCompilerReturnValue; } [PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")] set { nativeCompilerReturnValue = value; } } internal static Evidence CloneEvidence(Evidence ev) { new PermissionSet( PermissionState.Unrestricted ).Assert(); MemoryStream stream = new MemoryStream(); BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize( stream, ev ); stream.Position = 0; return (Evidence)formatter.Deserialize( stream ); } } }/// Gets or sets the compiler's return value. /// ///
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MSAANativeProvider.cs
- ListViewInsertionMark.cs
- UnsafeNativeMethods.cs
- TableItemPatternIdentifiers.cs
- ListView.cs
- SiteIdentityPermission.cs
- SqlUDTStorage.cs
- Codec.cs
- ToolboxItemFilterAttribute.cs
- ResourceProviderFactory.cs
- JapaneseLunisolarCalendar.cs
- TextEmbeddedObject.cs
- ServiceOperationParameter.cs
- GetCardDetailsRequest.cs
- DocumentPaginator.cs
- DoubleLink.cs
- TouchDevice.cs
- UserControlAutomationPeer.cs
- MultiView.cs
- SrgsRuleRef.cs
- SecurityRuntime.cs
- ToolStripItemClickedEventArgs.cs
- Itemizer.cs
- DuplicateContext.cs
- ExternalDataExchangeService.cs
- WebServiceHostFactory.cs
- ConnectionManagementSection.cs
- EditorPart.cs
- WebBrowserHelper.cs
- PointCollectionConverter.cs
- CopyAttributesAction.cs
- EventlogProvider.cs
- GraphicsContainer.cs
- ActiveXContainer.cs
- XmlIlGenerator.cs
- CharacterBufferReference.cs
- securestring.cs
- LocalValueEnumerator.cs
- Pair.cs
- FilterException.cs
- InkCanvasAutomationPeer.cs
- TaiwanCalendar.cs
- Misc.cs
- AnyAllSearchOperator.cs
- BaseTemplateBuildProvider.cs
- UserNamePasswordValidator.cs
- InteropAutomationProvider.cs
- MD5.cs
- Header.cs
- ToolStripOverflowButton.cs
- DefaultBindingPropertyAttribute.cs
- ExpressionLexer.cs
- SubordinateTransaction.cs
- EventWaitHandleSecurity.cs
- SizeChangedEventArgs.cs
- TableParagraph.cs
- EdgeModeValidation.cs
- HttpCookie.cs
- OrderedEnumerableRowCollection.cs
- ItemDragEvent.cs
- SettingsSavedEventArgs.cs
- RadialGradientBrush.cs
- ToolboxCategoryItems.cs
- Substitution.cs
- XpsS0ValidatingLoader.cs
- FixedSchema.cs
- DynamicFilter.cs
- Image.cs
- ISO2022Encoding.cs
- SessionState.cs
- IfJoinedCondition.cs
- DataGridCellClipboardEventArgs.cs
- TransformPatternIdentifiers.cs
- webbrowsersite.cs
- RecordsAffectedEventArgs.cs
- EntityDataSourceColumn.cs
- PnrpPermission.cs
- BCryptNative.cs
- ExpressionBindingCollection.cs
- SystemInfo.cs
- BitmapCodecInfo.cs
- CryptoConfig.cs
- WindowsGraphicsWrapper.cs
- InputLanguageEventArgs.cs
- AdornerHitTestResult.cs
- Perspective.cs
- FlagsAttribute.cs
- DelegatingConfigHost.cs
- BodyGlyph.cs
- DataGridViewImageCell.cs
- TreeNodeCollection.cs
- EntityException.cs
- EntityDesignerBuildProvider.cs
- ReadOnlyDictionary.cs
- EncryptedKey.cs
- TypedElement.cs
- SqlDataSourceSelectingEventArgs.cs
- PropertyMap.cs
- EntityDataSourceStatementEditor.cs
- InkCanvasSelectionAdorner.cs