/// <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)); }