Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / clr / src / BCL / System / Security / Policy / ApplicationDirectory.cs / 1 / ApplicationDirectory.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
// ApplicationDirectory.cs
//
// ApplicationDirectory is an evidence type representing the directory the assembly
// was loaded from.
//
namespace System.Security.Policy {
using System;
using System.IO;
using System.Security.Util;
using System.Collections;
[Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
sealed public class ApplicationDirectory : IBuiltInEvidence
{
private URLString m_appDirectory;
internal ApplicationDirectory()
{
m_appDirectory = null;
}
public ApplicationDirectory( String name )
{
if (name == null)
throw new ArgumentNullException( "name" );
m_appDirectory = new URLString( name );
}
public String Directory
{
get
{
return m_appDirectory.ToString();
}
}
public override bool Equals(Object o)
{
if (o == null)
return false;
if (o is ApplicationDirectory)
{
ApplicationDirectory appDir = (ApplicationDirectory) o;
if (this.m_appDirectory == null)
{
return appDir.m_appDirectory == null;
}
else if (appDir.m_appDirectory == null)
{
return false;
}
else
{
return this.m_appDirectory.IsSubsetOf( appDir.m_appDirectory ) && appDir.m_appDirectory.IsSubsetOf( this.m_appDirectory );
}
}
return false;
}
public override int GetHashCode()
{
return this.Directory.GetHashCode();
}
public Object Copy()
{
ApplicationDirectory appDir = new ApplicationDirectory();
appDir.m_appDirectory = this.m_appDirectory;
return appDir;
}
internal SecurityElement ToXml()
{
SecurityElement root = new SecurityElement( "System.Security.Policy.ApplicationDirectory" );
// If you hit this assert then most likely you are trying to change the name of this class.
// This is ok as long as you change the hard coded string above and change the assert below.
BCLDebug.Assert( this.GetType().FullName.Equals( "System.Security.Policy.ApplicationDirectory" ), "Class name changed!" );
root.AddAttribute( "version", "1" );
if (m_appDirectory != null)
root.AddChild( new SecurityElement( "Directory", m_appDirectory.ToString() ) );
return root;
}
///
int IBuiltInEvidence.OutputToBuffer( char[] buffer, int position, bool verbose )
{
buffer[position++] = BuiltInEvidenceHelper.idApplicationDirectory;
String directory = this.Directory;
int length = directory.Length;
if (verbose)
{
BuiltInEvidenceHelper.CopyIntToCharArray(length, buffer, position);
position += 2;
}
directory.CopyTo( 0, buffer, position, length );
return length + position;
}
///
int IBuiltInEvidence.InitFromBuffer( char[] buffer, int position)
{
int length = BuiltInEvidenceHelper.GetIntFromCharArray(buffer, position);
position += 2;
m_appDirectory = new URLString( new String(buffer, position, length ));
return position + length;
}
///
int IBuiltInEvidence.GetRequiredSize(bool verbose)
{
if (verbose)
return this.Directory.Length + 3; // Directory + identifier + length
else
return this.Directory.Length + 1; // Directory + identifier
}
public override String ToString()
{
return ToXml().ToString();
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- GenericXmlSecurityToken.cs
- HttpModuleActionCollection.cs
- BaseProcessor.cs
- BamlRecords.cs
- MinimizableAttributeTypeConverter.cs
- DocumentCollection.cs
- CacheHelper.cs
- LambdaCompiler.Statements.cs
- CompositeScriptReference.cs
- DocComment.cs
- Trace.cs
- SQLInt32.cs
- ComPlusThreadInitializer.cs
- IOException.cs
- FocusTracker.cs
- MetadataSerializer.cs
- CodeDOMUtility.cs
- GcSettings.cs
- PersonalizationEntry.cs
- TrackingMemoryStream.cs
- DataListCommandEventArgs.cs
- TextRangeEditTables.cs
- HtmlLabelAdapter.cs
- TheQuery.cs
- CodeGenerator.cs
- XmlDocumentType.cs
- UnsafeNativeMethods.cs
- oledbmetadatacolumnnames.cs
- FileDataSourceCache.cs
- BamlLocalizationDictionary.cs
- KeyEventArgs.cs
- StackBuilderSink.cs
- Validator.cs
- StickyNoteHelper.cs
- CodeObjectCreateExpression.cs
- TypeConverterMarkupExtension.cs
- ImageConverter.cs
- SessionPageStatePersister.cs
- PropertyGroupDescription.cs
- XPathNodeInfoAtom.cs
- Attributes.cs
- UserControlParser.cs
- GridViewUpdateEventArgs.cs
- GroupDescription.cs
- NavigatingCancelEventArgs.cs
- ServiceEndpointElementCollection.cs
- SynchronizationContextHelper.cs
- XmlArrayAttribute.cs
- ScrollBar.cs
- Calendar.cs
- OdbcHandle.cs
- RawAppCommandInputReport.cs
- MultipartContentParser.cs
- ReadOnlyCollectionBase.cs
- BlockCollection.cs
- ValidationError.cs
- TreeNodeBinding.cs
- TextBoxAutomationPeer.cs
- ValidatorCollection.cs
- DelayedRegex.cs
- GridViewDeleteEventArgs.cs
- Invariant.cs
- DiscoveryOperationContextExtension.cs
- CryptoApi.cs
- TableRowCollection.cs
- BrowserCapabilitiesCodeGenerator.cs
- TypedColumnHandler.cs
- RectangleGeometry.cs
- HttpCacheVary.cs
- ReverseQueryOperator.cs
- WebDisplayNameAttribute.cs
- ExtendedProperty.cs
- JavaScriptString.cs
- HtmlUtf8RawTextWriter.cs
- Native.cs
- XPathBinder.cs
- HyperLinkStyle.cs
- ObjectManager.cs
- Site.cs
- SerializableAuthorizationContext.cs
- FixedSOMImage.cs
- BamlReader.cs
- DataAdapter.cs
- CqlParserHelpers.cs
- DbXmlEnabledProviderManifest.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- AutomationFocusChangedEventArgs.cs
- TerminatorSinks.cs
- XmlSchemaCollection.cs
- SecurityUtils.cs
- PerformanceCounterNameAttribute.cs
- DataRowExtensions.cs
- OleServicesContext.cs
- ValueTypeFixupInfo.cs
- XsltContext.cs
- UnauthorizedAccessException.cs
- Crypto.cs
- ScrollContentPresenter.cs
- CultureInfo.cs
- EntityDataSourceState.cs