/// <summary>
        /// Constructs a new sceneobject converter
        /// </summary>
        /// <param name="openSimPath">The path to a vanilla opensim bin directory</param>
        /// <param name="creatorOverride">Override for the embedded creator ID</param>
        /// <param name="ownerOverride">Override for the embedded owner ID</param>
        public SceneObjectConverter(string openSimPath, IAssetResolver ar, Guid? creatorOverride = null, Guid? ownerOverride = null)
        {
            m_assetResolver = ar;
            m_creatorOverride = creatorOverride ?? Guid.Empty;
            m_ownerOverride = ownerOverride ?? Guid.Empty;

            m_context = AppDomainContext.Create();

            m_context.LoadAssembly(LoadMethod.LoadFile, Path.Combine(openSimPath, "OpenSim.Region.Framework.dll"));
            var assemblies = m_context.Domain.GetAssemblies();
            foreach (Assembly asm in assemblies)
            {
                if (asm.FullName.Contains("OpenSim.Region.Framework"))
                {
                    Type t = asm.GetType("OpenSim.Region.Framework.Scenes.Serialization.SceneObjectSerializer");

                    m_fromXml2Method = t.GetMethod("FromXml2Format", new[] { typeof(string) });
                    if (m_fromXml2Method == null)
                    {
                        // never throw generic Exception - replace this with some other exception type
                        throw new Exception("FromXml2Format(string):  No such method exists.");
                    }
                }
            }
        }
 /// <summary>
 ///     Creates a new instance of the AppDomainContext class.
 /// </summary>
 /// <param name="domain">The domain to wrap in the context</param>
 /// <returns></returns>
 public static AppDomainContext <AssemblyTargetLoader, PathBasedAssemblyResolver> Wrap(AppDomain domain)
 {
     return(AppDomainContext <AssemblyTargetLoader, PathBasedAssemblyResolver> .Wrap(domain));
 }
 /// <summary>
 ///     Creates a new instance of the AppDomainContext class.
 /// </summary>
 /// <param name="setupInfo">
 ///     The setup info.
 /// </param>
 /// <returns>
 ///     A new AppDomainContext.
 /// </returns>
 public static AppDomainContext <AssemblyTargetLoader, PathBasedAssemblyResolver> Create(AppDomainSetup setupInfo)
 {
     return
         (AppDomainContext <AssemblyTargetLoader, PathBasedAssemblyResolver>
          .Create <AssemblyTargetLoader, PathBasedAssemblyResolver>(setupInfo));
 }