// Author:
// Duco Fijma (duco@lorentz.xs4all.nl)
//
+// Copyright (C) 2004-2005 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
using System.Security;
+using System.Security.Permissions;
using System.Security.Policy;
using System.Security.Principal;
using System.Reflection;
namespace System
{
+#if NET_2_0
+ [ComVisible (true)]
+#endif
[CLSCompliant (false)]
[InterfaceType (ComInterfaceType.InterfaceIsIUnknown)]
[Guid ("05F696DC-2B29-3663-AD8B-C4389CF2A713")]
string RelativeSearchPath {get; }
bool ShadowCopyFiles {get; }
+ [SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
void AppendPrivatePath (string path);
+
+ [SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
void ClearPrivatePath ();
+
+ [SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
void ClearShadowCopyPath ();
ObjectHandle CreateInstance (string assemblyName, string typeName);
Assembly[] GetAssemblies ();
object GetData (string name);
int GetHashCode();
+
+ [SecurityPermission (SecurityAction.LinkDemand, Infrastructure = true)]
object GetLifetimeService ();
+
Type GetType ();
+
+ [SecurityPermission (SecurityAction.LinkDemand, Infrastructure = true)]
object InitializeLifetimeService ();
Assembly Load (AssemblyName assemblyRef);
Assembly Load (string assemblyString, Evidence assemblySecurity);
Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore, Evidence securityEvidence);
+ [SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
void SetAppDomainPolicy (PolicyLevel domainPolicy);
+
+ [SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
void SetCachePath (string s);
+
+ [SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
void SetData (string name, object data);
+
void SetPrincipalPolicy (PrincipalPolicy policy);
+
+ [SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
void SetShadowCopyPath (string s);
+
void SetThreadPrincipal (IPrincipal principal);
string ToString ();
+#if BOOTSTRAP_WITH_OLDLIB
+ // older MCS/corlib returns:
+ // _AppDomain.cs(138) error CS0592: Attribute 'SecurityPermission' is not valid on this declaration type.
+ // It is valid on 'assembly' 'class' 'constructor' 'method' 'struct' declarations only.
event AssemblyLoadEventHandler AssemblyLoad;
event ResolveEventHandler AssemblyResolve;
event EventHandler DomainUnload;
event ResolveEventHandler ResourceResolve;
event ResolveEventHandler TypeResolve;
event UnhandledExceptionEventHandler UnhandledException;
+#else
+ [method: SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
+ event AssemblyLoadEventHandler AssemblyLoad;
+
+ [method: SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
+ event ResolveEventHandler AssemblyResolve;
+
+ [method: SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
+ event EventHandler DomainUnload;
+
+ [method: SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
+ event EventHandler ProcessExit;
+
+ [method: SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
+ event ResolveEventHandler ResourceResolve;
+
+ [method: SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
+ event ResolveEventHandler TypeResolve;
+
+ [method: SecurityPermission (SecurityAction.LinkDemand, ControlAppDomain = true)]
+ event UnhandledExceptionEventHandler UnhandledException;
+#endif
+
+#if NET_1_1
+ void GetIDsOfNames ([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
+
+ void GetTypeInfo (uint iTInfo, uint lcid, IntPtr ppTInfo);
+
+ void GetTypeInfoCount (out uint pcTInfo);
+
+ void Invoke (uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams,
+ IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr);
+#endif
}
}