[Mono-list] AppDomain problems

Jaak Simm jaaksimm@firm.ee
Wed, 14 Aug 2002 22:31:25 +0200


It seems that following line is creating 
System.Security.Policy.PolicyException:
    AppDomain newDomain = AppDomain.CreateDomain ("NewDomain", new 
Evidence (), setup);

It went away when I replaced it with:
    Evidence baseEvidence = AppDomain.CurrentDomain.Evidence;
    Evidence evidence = new Evidence(baseEvidence);
    AppDomain newDomain = AppDomain.CreateDomain ("NewDomain", evidence, 
setup);

These lines are from the example in SDK Documentation of 
AppDomain.CreateDomain :).
I hope it helps.

Cheers,
Jaak

Dietmar Maurer wrote:

>I cant get the attached program to work on MS windows, even if security
>is turned off with: CasPol -s off
>
>Whats wrong? Any ideas?
>
>- Dietmar
>
>------------------------------------------------------------------------
>using System;
>using System.Security.Policy;
>using System.Threading;
>using System.Runtime.Serialization;
>
>class Container {
>
>	[Serializable]
>	public struct c2 : ISerializable {
>		public int a;
>		public string s1;
>
>		private c2 (SerializationInfo info, StreamingContext context) {
>			a = info.GetInt32("a");
>			s1 = info.GetString("s1");
>			Console.WriteLine ("SetObjectData called: " + info.AssemblyName + "," +
>					   info.FullTypeName + " " + s1 + ", " + a);
>		}
>
>		public void GetObjectData (SerializationInfo info, StreamingContext context) {
>			Console.WriteLine ("GetObjectData called: " + info.AssemblyName + "," +
>					   info.FullTypeName + " " + s1 + ", " + a);
>			info.AddValue ("a", a);
>			if (s1 != null)
>				info.AddValue ("s1", s1);
>			else
>				info.AddValue ("s1", "(null)");
>		}
>	}
>	
>	[Serializable]
>	public class c1 {
>		public c1 () {
>			e1.a = 3;
>			e1.s1 = "SS";
>		}
>		public int a = 1;
>		public int b = 2;
>		public string s1 = "TEST1";
>		[NonSerialized] public string s2 = "TEST2";
>		public c2 [] sa = new c2 [2];
>		public c2 e1;
>	}
>	
>	static int Main ()
>	{
>		AppDomainSetup setup = new AppDomainSetup ();
>		setup.ApplicationBase = ".";
>
>		Console.WriteLine (AppDomain.CurrentDomain.FriendlyName);
>			
>		AppDomain newDomain = AppDomain.CreateDomain ("NewDomain", new Evidence (), setup);
>
>		c1 a1 = new c1 ();
>		
>		newDomain.SetData ("TEST", a1);
>		c1 r1 = (c1)newDomain.GetData ("TEST");
>		if (r1.a != 1 || r1.b !=2)
>			return 1;
>		
>		if (r1.s1 != "TEST1")
>			return 2;
>		
>		if (r1.s2 != null)
>			return 3;
>
>		if (r1.e1.a != 3)
>			return 4;
>
>		if (r1.e1.s1 != "SS")
>			return 4;
>		
>		if (r1.sa [0].s1 != "(null)")
>			return 5;
>		
>		if (r1.sa [0].a != 0)
>			return 6;
>
>		return 0;
>	}
>}
>
>
>
>
>
>_______________________________________________
>Mono-list maillist  -  Mono-list@ximian.com
>http://lists.ximian.com/mailman/listinfo/mono-list
>
>  
>