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)); }
public TObjectType Create <TObjectType>() where TObjectType : class, IDataRecord, new() { var obj = new TObjectType(); var repo = GetRepositoryFor(typeof(TObjectType)); repo.Add(obj); return(obj); }
/// <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); }
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); }
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); }
public DObject(CrashDebuggerInfo aCrashDebugger, TObjectType aType) : base(aCrashDebugger) { iType = aType; }
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); }