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
- BitmapEffectCollection.cs
- DynamicRenderer.cs
- DebugViewWriter.cs
- CodeDelegateCreateExpression.cs
- AssemblyNameUtility.cs
- HtmlTable.cs
- EntityDataSourceDataSelectionPanel.cs
- StringOutput.cs
- XmlBinaryReader.cs
- FontStretchConverter.cs
- CacheRequest.cs
- BooleanProjectedSlot.cs
- InputLanguageProfileNotifySink.cs
- OutputCacheSettingsSection.cs
- Tablet.cs
- DBDataPermission.cs
- Encoder.cs
- GZipStream.cs
- RegexNode.cs
- GridViewEditEventArgs.cs
- ByteAnimation.cs
- HtmlElementCollection.cs
- TextBreakpoint.cs
- PhotoPrintingIntent.cs
- FileDialogCustomPlace.cs
- SqlInternalConnectionTds.cs
- XmlSerializer.cs
- SqlBulkCopy.cs
- PseudoWebRequest.cs
- HighContrastHelper.cs
- OutputCacheModule.cs
- DocumentPage.cs
- SharedDp.cs
- ChangePassword.cs
- CollectionViewGroupInternal.cs
- XmlElementAttribute.cs
- ApplicationManager.cs
- ObjectPersistData.cs
- followingquery.cs
- BitmapMetadataBlob.cs
- Popup.cs
- ReaderWriterLock.cs
- BCLDebug.cs
- ParallelDesigner.cs
- ProcessingInstructionAction.cs
- JapaneseLunisolarCalendar.cs
- DrawingVisualDrawingContext.cs
- XmlUTF8TextWriter.cs
- MetadataArtifactLoaderCompositeResource.cs
- ToolStripTemplateNode.cs
- BindToObject.cs
- Part.cs
- ThrowOnMultipleAssignment.cs
- ObjectParameterCollection.cs
- NullableDoubleSumAggregationOperator.cs
- DbgUtil.cs
- TemplateParser.cs
- base64Transforms.cs
- EventPrivateKey.cs
- GacUtil.cs
- _NetworkingPerfCounters.cs
- BrowserDefinition.cs
- OutputCacheProfileCollection.cs
- LockCookie.cs
- XmlSchemaSimpleTypeList.cs
- WSDualHttpSecurityMode.cs
- CanonicalFontFamilyReference.cs
- LexicalChunk.cs
- BaseComponentEditor.cs
- TypeNameHelper.cs
- TimersDescriptionAttribute.cs
- SystemIPAddressInformation.cs
- ProtocolsConfigurationEntry.cs
- XmlQueryContext.cs
- MatchingStyle.cs
- InvalidPropValue.cs
- AutoGeneratedFieldProperties.cs
- messageonlyhwndwrapper.cs
- LineGeometry.cs
- Nullable.cs
- EdmProviderManifest.cs
- ConnectionPoint.cs
- ISAPIWorkerRequest.cs
- QueryConverter.cs
- AssemblyName.cs
- HtmlTableRowCollection.cs
- StringFunctions.cs
- MatrixValueSerializer.cs
- Image.cs
- RegionInfo.cs
- TextInfo.cs
- HostedTcpTransportManager.cs
- CodeSnippetExpression.cs
- PersonalizationDictionary.cs
- ActivitySurrogate.cs
- PlainXmlWriter.cs
- PropertyMapper.cs
- DataObjectSettingDataEventArgs.cs
- BehaviorEditorPart.cs
- MobileControlDesigner.cs