Пример #1
0
        private TObjectType ReceiveMessage <TObjectType>()
        {
            Uri endpoint = new Uri("amqp:message_queue");
            IChannelListener <IInputChannel> listener = Util.GetBinding().BuildChannelListener <IInputChannel>(endpoint, new BindingParameterCollection());

            listener.Open();
            IInputChannel service = listener.AcceptChannel(TimeSpan.FromSeconds(10));

            service.Open();
            Message receivedMessage = service.Receive(TimeSpan.FromSeconds(10));

            Assert.NotNull(receivedMessage, "Message was not received");
            try
            {
                TObjectType receivedObject = receivedMessage.GetBody <TObjectType>();
                return(receivedObject);
            }
            catch (SerializationException)
            {
                Assert.Fail("Deserialized object not of correct type");
            }
            finally
            {
                receivedMessage.Close();
                service.Close();
                listener.Close();
            }

            return(default(TObjectType));
        }
Пример #2
0
        public TObjectType Create <TObjectType>() where TObjectType : class, IDataRecord, new()
        {
            var obj  = new TObjectType();
            var repo = GetRepositoryFor(typeof(TObjectType));

            repo.Add(obj);
            return(obj);
        }
Пример #3
0
        /// <summary>
        /// Use this method in your deserializer when you don't really care if the
        /// WorkingObject has been created yet or if it needs to be created. This method will
        /// check for a previously created object, and if it doesn't exist, it will create a
        /// new object using a parameter-less constructor.
        /// </summary>
        /// <typeparam name="TObjectType">The Type of the object that the surrogate is
        /// expecting</typeparam>
        /// <returns>A non-NULL object reference cast to the Type specified</returns>
        /// <exception cref="InvalidCastException">Thrown if there is an existing working
        /// object, but that object cannot be cast to the Type specified.</exception>
        public TObjectType GetExistingOrCreateNew <TObjectType>() where TObjectType : new()
        {
            if (WorkingObject != null)
            {
                return((TObjectType)WorkingObject);
            }

            var newObject = new TObjectType();

            Set(newObject);
            return(newObject);
        }
Пример #4
0
        public TObjectType GetValue <TObjectType>()
        {
            TObjectType objValue      = default(TObjectType);
            Type        objObjectType = typeof(TObjectType);

            if (objObjectType.IsEnum == true)
            {
                objValue = (TObjectType)Enum.Parse(objObjectType, Value.ToString());
            }
            else
            {
                SerializedValueType enuValueType = SerializedValueTypeHelper.GetTypeFromSystemType(objObjectType);
                switch (enuValueType)
                {
                case (SerializedValueType.Boolean):
                    objValue = (TObjectType)((object)GetBoolean());
                    break;

                case (SerializedValueType.Byte):
                    objValue = (TObjectType)((object)GetByte());
                    break;

                case (SerializedValueType.Char):
                    objValue = (TObjectType)((object)GetChar());
                    break;

                case (SerializedValueType.DateTime):
                    objValue = (TObjectType)((object)GetDateTime());
                    break;

                case (SerializedValueType.Decimal):
                    objValue = (TObjectType)((object)GetDecimal());
                    break;

                case (SerializedValueType.Double):
                    objValue = (TObjectType)((object)GetDouble());
                    break;

                case (SerializedValueType.Enum):
                    objValue = (TObjectType)Enum.Parse(objObjectType, GetString());
                    break;

                case (SerializedValueType.Guid):
                    objValue = (TObjectType)((object)GetGuid());
                    break;

                case (SerializedValueType.Int16):
                    objValue = (TObjectType)((object)GetInt16());
                    break;

                case (SerializedValueType.Int32):
                    objValue = (TObjectType)((object)GetInt32());
                    break;

                case (SerializedValueType.Int64):
                    objValue = (TObjectType)((object)GetInt64());
                    break;

                case (SerializedValueType.SByte):
                    objValue = (TObjectType)((object)GetSByte());
                    break;

                case (SerializedValueType.Single):
                    objValue = (TObjectType)((object)GetSingle());
                    break;

                case (SerializedValueType.String):
                    objValue = (TObjectType)((object)GetString());
                    break;

                case (SerializedValueType.UInt16):
                    objValue = (TObjectType)((object)GetUInt16());
                    break;

                case (SerializedValueType.UInt32):
                    objValue = (TObjectType)((object)GetUInt32());
                    break;

                case (SerializedValueType.UInt64):
                    objValue = (TObjectType)((object)GetUInt64());
                    break;

                case (SerializedValueType.Timespan):
                    objValue = (TObjectType)((object)GetTimespan());
                    break;

                case (SerializedValueType.ByteArray):
                    objValue = (TObjectType)((object)GetByteArray());
                    break;
                }
            }

            return(objValue);
        }
Пример #5
0
        public static string AsClassName(TObjectType aType)
        {
            string ret = "Unknown";

            //
            switch (aType)
            {
            case DObject.TObjectType.EThread:
                ret = "DThread";
                break;

            case DObject.TObjectType.EProcess:
                ret = "DProcess";
                break;

            case DObject.TObjectType.EChunk:
                ret = "DChunk";
                break;

            case DObject.TObjectType.ELibrary:
                ret = "DLibrary";
                break;

            case DObject.TObjectType.ESemaphore:
                ret = "DSemaphore";
                break;

            case DObject.TObjectType.EMutex:
                ret = "DMutex";
                break;

            case DObject.TObjectType.ETimer:
                ret = "DTimer";
                break;

            case DObject.TObjectType.EServer:
                ret = "DServer";
                break;

            case DObject.TObjectType.ESession:
                ret = "DSession";
                break;

            case DObject.TObjectType.ELogicalDevice:
                ret = "DLogicalDevice";
                break;

            case DObject.TObjectType.EPhysicalDevice:
                ret = "DPhysicalDevice";
                break;

            case DObject.TObjectType.ELogicalChannel:
                ret = "DLogicalChannel";
                break;

            case DObject.TObjectType.EChangeNotifier:
                ret = "DChangeNotifier";
                break;

            case DObject.TObjectType.EUndertaker:
                ret = "DUndertaker";
                break;

            case DObject.TObjectType.EMsgQueue:
                ret = "DMsgQueue";
                break;

            case DObject.TObjectType.EPropertyRef:
                ret = "DPropertyRef";
                break;

            case DObject.TObjectType.ECondVar:
                ret = "DCondVar";
                break;

            default:
                break;
            }

            return(ret);
        }
Пример #6
0
 public DObject(CrashDebuggerInfo aCrashDebugger, TObjectType aType)
     : base(aCrashDebugger)
 {
     iType = aType;
 }
Пример #7
0
        public static string AsTypeDescription(TObjectType aType)
        {
            string ret = "Unknown";

            //
            switch (aType)
            {
            case DObject.TObjectType.EThread:
                ret = "Thread";
                break;

            case DObject.TObjectType.EProcess:
                ret = "Process";
                break;

            case DObject.TObjectType.EChunk:
                ret = "Chunk";
                break;

            case DObject.TObjectType.ELibrary:
                ret = "Library";
                break;

            case DObject.TObjectType.ESemaphore:
                ret = "Semaphore";
                break;

            case DObject.TObjectType.EMutex:
                ret = "Mutex";
                break;

            case DObject.TObjectType.ETimer:
                ret = "Timer";
                break;

            case DObject.TObjectType.EServer:
                ret = "Server";
                break;

            case DObject.TObjectType.ESession:
                ret = "Session";
                break;

            case DObject.TObjectType.ELogicalDevice:
                ret = "Logical Device";
                break;

            case DObject.TObjectType.EPhysicalDevice:
                ret = "Physical Device";
                break;

            case DObject.TObjectType.ELogicalChannel:
                ret = "Logical Channel";
                break;

            case DObject.TObjectType.EChangeNotifier:
                ret = "Change Notifier";
                break;

            case DObject.TObjectType.EUndertaker:
                ret = "Undertaker";
                break;

            case DObject.TObjectType.EMsgQueue:
                ret = "Message Queue";
                break;

            case DObject.TObjectType.EPropertyRef:
                ret = "Property Ref";
                break;

            case DObject.TObjectType.ECondVar:
                ret = "Condition Variable";
                break;

            default:
                break;
            }

            return(ret);
        }