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
- Sql8ConformanceChecker.cs
- Transform3DCollection.cs
- DataSvcMapFile.cs
- UserControlParser.cs
- TimeSpanOrInfiniteConverter.cs
- TemplateGroupCollection.cs
- ScrollData.cs
- COAUTHINFO.cs
- BridgeDataRecord.cs
- ProjectionCamera.cs
- NullableLongMinMaxAggregationOperator.cs
- KeyPullup.cs
- NameObjectCollectionBase.cs
- CacheSection.cs
- WorkflowValidationFailedException.cs
- IISUnsafeMethods.cs
- SingleConverter.cs
- Baml2006KeyRecord.cs
- ScriptingAuthenticationServiceSection.cs
- XmlSchemaAnyAttribute.cs
- SmiTypedGetterSetter.cs
- StickyNoteContentControl.cs
- ApplicationFileParser.cs
- AutomationPropertyInfo.cs
- DataGridViewUtilities.cs
- GridViewColumn.cs
- Ops.cs
- TextParentUndoUnit.cs
- X509SecurityTokenProvider.cs
- SchemaMapping.cs
- ElementsClipboardData.cs
- ProcessProtocolHandler.cs
- PreProcessor.cs
- StrongNameIdentityPermission.cs
- ParameterEditorUserControl.cs
- Int64Storage.cs
- CodeGotoStatement.cs
- LinqDataSourceUpdateEventArgs.cs
- BamlLocalizabilityResolver.cs
- DefaultBindingPropertyAttribute.cs
- TransformationRules.cs
- QilTypeChecker.cs
- DataGridViewSelectedColumnCollection.cs
- XsltSettings.cs
- shaperfactoryquerycacheentry.cs
- CollectionChangedEventManager.cs
- PeerNameResolver.cs
- ContentHostHelper.cs
- AccessControlEntry.cs
- PngBitmapEncoder.cs
- PlanCompiler.cs
- InternalDuplexChannelListener.cs
- HttpDictionary.cs
- CustomAttributeSerializer.cs
- PropertyItem.cs
- KoreanCalendar.cs
- TimeSpanValidatorAttribute.cs
- NativeBuffer.cs
- ToolStripSeparatorRenderEventArgs.cs
- GZipDecoder.cs
- SafeFileHandle.cs
- ControlIdConverter.cs
- XmlTypeAttribute.cs
- MetadataFile.cs
- Emitter.cs
- ApplicationException.cs
- Matrix3D.cs
- TraceUtils.cs
- XmlAutoDetectWriter.cs
- WebPartConnectionsConfigureVerb.cs
- ResourcesGenerator.cs
- MemoryMappedView.cs
- AutoGeneratedFieldProperties.cs
- TextBoxRenderer.cs
- Pair.cs
- HtmlEmptyTagControlBuilder.cs
- SignedPkcs7.cs
- RTLAwareMessageBox.cs
- BlobPersonalizationState.cs
- TextTrailingWordEllipsis.cs
- HtmlInputReset.cs
- ValueQuery.cs
- safesecurityhelperavalon.cs
- tibetanshape.cs
- AssemblyInfo.cs
- StylusPoint.cs
- ItemList.cs
- SafeProcessHandle.cs
- CleanUpVirtualizedItemEventArgs.cs
- ToolboxComponentsCreatingEventArgs.cs
- ContractAdapter.cs
- HttpListenerException.cs
- SmiTypedGetterSetter.cs
- WebPartConnectionsEventArgs.cs
- CngAlgorithm.cs
- DesignerObject.cs
- Latin1Encoding.cs
- CodeVariableDeclarationStatement.cs
- KerberosTicketHashIdentifierClause.cs
- AppearanceEditorPart.cs