WriteByte() 공개 추상적인 메소드

public abstract WriteByte ( byte b ) : void
b byte
리턴 void
예제 #1
0
        public void Write(Serializer serializer, object value, CustomData customData)
        {
            var message = (Message) customData.Data;

            if (value is IDataObject)
            {
                serializer.WriteByte((byte)DataType.DataObject);
                WriteDataObject(serializer, customData.Type, (IDataObject) value, message);
                return;
            }

            if (value is Delegate)
            {
                serializer.WriteByte((byte)DataType.Delegate);
                var contextId = message.RemotingManager.ContextManager.GetContextId(customData.RequestingAssembly);
                var del = message.RemotingManager.DelegateManager.CreateDelegateImpl(contextId, (Delegate)value);
                serializer.WriteI32(del.LocalId);
                // TODO: Serialize Peer and RemoteId so we can create delegate proxies to other peer's delegates.
                return;
            }

            if (ServiceManager.IsService(customData.Type))
            {
                serializer.WriteByte((byte)DataType.Service);
                var serviceImpl = message.RemotingManager.ServiceManager.GetCreateImplementation(customData.Type, value);
                serializer.WriteI32(serviceImpl.LocalId);
                return;
            }

            throw new NotImplementedException();
        }