示例#1
0
        public T GetObject <T>(string id)
        {
            NewPayLoad PL   = new NewPayLoad("GetObject", id);
            NewPayLoad PLRC = mGingerSocketClient2.SendRequestPayLoad(PL);
            Guid       guid = Guid.Parse(PLRC.GetValueString()); //TODO: add Guid in Payload
            T          obj  = RemoteObjectProxy <T> .Create(this, guid);

            return(obj);
        }
示例#2
0
        private void RepositoryItemBaseReport()
        {
            string s = "";
            RemoteObjectProxy <RepositoryItem> dp = new RemoteObjectProxy <RepositoryItem>(); //dummy to load the dll

            //s += getRIBase(typeof(Ginger.App).Assembly);  // Ginger
            //s += getRIBase(typeof(RepositoryItemBase).Assembly);  // GingerCoreCommon
            //s += getRIBase(typeof(RepositoryItem).Assembly);  // GingerCore

            s += getRIBase(typeof(GingerNode).Assembly);  // GingerCoreNet

            System.IO.File.WriteAllText(@"c:\temp\RIBase.txt", s);
        }
示例#3
0
        internal object Invoke <T>(RemoteObjectProxy <T> remoteObjectProxy, MethodInfo targetMethod, object[] args)
        {
            NewPayLoad pl = new NewPayLoad("Invoke");

            pl.AddValue(remoteObjectProxy.RemoteObjectGuid.ToString());
            pl.AddValue(targetMethod.Name);
            pl.AddValue(args.Length); // count of params
            foreach (object o in args)
            {
                pl.AddValueByObjectType(o);
            }
            pl.ClosePackage();
            NewPayLoad PLRC = mGingerSocketClient2.SendRequestPayLoad(pl);

            object rc = PLRC.GetValueByObjectType();

            return(rc);
        }