Quantcast
Channel: Questions in topic: "ios"
Viewing all articles
Browse latest Browse all 4709

Dispose Object in IOS

$
0
0
Hello everybody I want to clone "Object.Destroy(Object)" method todo like this Object a = .....; Object b = null; b = a; Object.Destroy(b); Debug.Log(a == null); // true I think I should use dispose object by my self I create BaseDisposable for this dispose my object when any class extend BaseDisposable that class can use Dispose() yes it work in editor but in IOS it not work XCODE throws exception ExecutionEngineException: Attempting to JIT compile method '(wrapper remoting-invoke) object:ToString ()' while running with --aot-only. at System.Runtime.Remoting.Proxies.RealProxy.GetTransparentProxy () [0x00000] in :0 at System.Runtime.Remoting.RemotingServices.CreateClientProxyForContextBound (System.Type type, System.Object[] activationAttributes) [0x00000] in :0 at System.Runtime.Remoting.Activation.ActivationServices.CreateProxyForType (System.Type type) [0x00000] in :0 at OzEngine.OzWorld.get_Instance () [0x00000] in :0 at OzWorld_Behaviour.Awake () [0x00000] in :0 (Filename: Line: -1) ExecutionEngineException: Attempting to JIT compile method '(wrapper remoting-invoke) object:ToString ()' while running with --aot-only. at System.Runtime.Remoting.Proxies.RealProxy.GetTransparentProxy () [0x00000] in :0 at System.Runtime.Remoting.RemotingServices.CreateClientProxyForContextBound (System.Type type, System.Object[] activationAttributes) [0x00000] in :0 at System.Runtime.Remoting.Activation.ActivationServices.CreateProxyForType (System.Type type) [0x00000] in :0 at OzEngine.OzWorld.get_Instance () [0x00000] in :0 at RFC_3DManagerUnity.Awake () [0x00000] in :0 (Filename: Line: -1) anyway to do it ? sorry for my poor english thank for answers this my BaseDispose using System; using System.Runtime.Remoting.Activation; using System.Runtime.Remoting.Contexts; using System.Runtime.Remoting.Messaging; namespace MYSPACE { public class DisposableAspect : IMessageSink { private BaseDisposable realobject = null; public DisposableAspect(IMessageSink next) { NextSink = next; } public IMessage SyncProcessMessage(IMessage msg) { if (msg is IMethodMessage) { var method = msg as IMethodMessage; BaseDisposable obj = null; IMessage ret = null; if (method.MethodName == ".ctor") { Preprocess(msg); ret = NextSink.SyncProcessMessage(msg); realobject = (BaseDisposable)((IMethodReturnMessage)ret).ReturnValue; } else { obj = realobject; Preprocess(msg, obj); ret = NextSink.SyncProcessMessage(msg); } return ret; } IMessage returnMethod = NextSink.SyncProcessMessage(msg); return returnMethod; } private void Preprocess(IMessage msg, BaseDisposable baseDisposable = null) { if (baseDisposable != null && baseDisposable.IsDisposed) { throw new NullReferenceException("Object reference not set to an instance of object"); } } public IMessageCtrl AsyncProcessMessage(IMessage msg, IMessageSink replySink) { throw new NotImplementedException(); } public IMessageSink NextSink { get; private set; } } public class DisposableProperty : IContextProperty, IContributeServerContextSink { public DisposableProperty() { } public bool IsNewContextOK(Context newCtx) { DisposableProperty newContextLogProperty = newCtx.GetProperty(Name) as DisposableProperty; return newContextLogProperty != null; } public void Freeze(Context newContext) { } public string Name { get { return "Disposable"; } } public IMessageSink GetServerContextSink(IMessageSink nextSink) { return new DisposableAspect(nextSink); } } [AttributeUsage(AttributeTargets.Class)] public class DisposableAttribute : ContextAttribute { public DisposableAttribute() : base("DisposableAttribute") { } public override void GetPropertiesForNewContext(IConstructionCallMessage ccm) { ccm.ContextProperties.Add(new DisposableProperty()); } } [Disposable()] public abstract class BaseDisposable : ContextBoundObject, IDisposable { private bool _disposed = false; public bool IsDisposed { get { return _disposed; } } ~BaseDisposable() { Dispose(false); } public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } protected virtual void Dispose(bool disposing) { _disposed = true; } } }

Viewing all articles
Browse latest Browse all 4709

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>