diff --git a/src/mono/WampSharp/WampSharp.csproj b/src/mono/WampSharp/WampSharp.csproj
index 98f3156fc..ebbc7c9f3 100644
--- a/src/mono/WampSharp/WampSharp.csproj
+++ b/src/mono/WampSharp/WampSharp.csproj
@@ -260,6 +260,9 @@
Core\Utilities\Method.cs
+
+ Core\Utilities\SerializableAttribute.cs
+
Core\Utilities\ReadOnlyDictionary.cs
diff --git a/src/net40/WampSharp/WampSharp.csproj b/src/net40/WampSharp/WampSharp.csproj
index 48bc6a266..05b475078 100644
--- a/src/net40/WampSharp/WampSharp.csproj
+++ b/src/net40/WampSharp/WampSharp.csproj
@@ -264,6 +264,9 @@
Core\Utilities\Method.cs
+
+ Core\Utilities\SerializableAttribute.cs
+
Core\Utilities\ReadOnlyDictionary.cs
diff --git a/src/net45/WampSharp.WAMP1/WAMP1/V1/Api/Server/WampRequestContext.cs b/src/net45/WampSharp.WAMP1/WAMP1/V1/Api/Server/WampRequestContext.cs
index 5080f6cde..fbd3893c5 100644
--- a/src/net45/WampSharp.WAMP1/WAMP1/V1/Api/Server/WampRequestContext.cs
+++ b/src/net45/WampSharp.WAMP1/WAMP1/V1/Api/Server/WampRequestContext.cs
@@ -5,9 +5,7 @@
namespace WampSharp.V1
{
-#if !PCL
[Serializable]
-#endif
public class WampRequestContext
{
#region Static Members
diff --git a/src/net45/WampSharp/Core/Utilities/SerializableAttribute.cs b/src/net45/WampSharp/Core/Utilities/SerializableAttribute.cs
new file mode 100644
index 000000000..18c90775c
--- /dev/null
+++ b/src/net45/WampSharp/Core/Utilities/SerializableAttribute.cs
@@ -0,0 +1,16 @@
+#if PCL
+
+namespace System
+{
+ [AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
+ internal sealed class SerializableAttribute : Attribute
+ {
+ }
+
+ [AttributeUsage(AttributeTargets.Field, Inherited = false, AllowMultiple = false)]
+ internal sealed class NonSerializedAttribute : Attribute
+ {
+ }
+}
+
+#endif
\ No newline at end of file
diff --git a/src/net45/WampSharp/WAMP2/V2/Api/WampEventContext.cs b/src/net45/WampSharp/WAMP2/V2/Api/WampEventContext.cs
index aabb7bb41..1e8f380a6 100644
--- a/src/net45/WampSharp/WAMP2/V2/Api/WampEventContext.cs
+++ b/src/net45/WampSharp/WAMP2/V2/Api/WampEventContext.cs
@@ -9,9 +9,7 @@ namespace WampSharp.V2
///
/// Includes information about the current event.
///
-#if !PCL
[Serializable]
-#endif
public class WampEventContext
{
diff --git a/src/net45/WampSharp/WAMP2/V2/Api/WampInvocationContext.cs b/src/net45/WampSharp/WAMP2/V2/Api/WampInvocationContext.cs
index db01a14eb..bd7290c00 100644
--- a/src/net45/WampSharp/WAMP2/V2/Api/WampInvocationContext.cs
+++ b/src/net45/WampSharp/WAMP2/V2/Api/WampInvocationContext.cs
@@ -10,9 +10,7 @@ namespace WampSharp.V2
///
/// Includes information about the current invocation.
///
-#if !PCL
[Serializable]
-#endif
public class WampInvocationContext
{
#region Static Members
diff --git a/src/net45/WampSharp/WAMP2/V2/Authentication/WampAuthenticationException.cs b/src/net45/WampSharp/WAMP2/V2/Authentication/WampAuthenticationException.cs
index fec114ccf..ef8ec0129 100644
--- a/src/net45/WampSharp/WAMP2/V2/Authentication/WampAuthenticationException.cs
+++ b/src/net45/WampSharp/WAMP2/V2/Authentication/WampAuthenticationException.cs
@@ -7,9 +7,7 @@ namespace WampSharp.V2.Authentication
/// An exception that can be thrown if can't authenticate with router.
/// This sends an ABORT message to the router.
///
-#if !PCL
[Serializable]
-#endif
public class WampAuthenticationException : Exception
{
protected const string DefaultMessage = "sorry, I cannot authenticate (onchallenge handler raised an exception)";
diff --git a/src/net45/WampSharp/WAMP2/V2/Client/Session/WampAuthenticationNotImplementedException.cs b/src/net45/WampSharp/WAMP2/V2/Client/Session/WampAuthenticationNotImplementedException.cs
index f104672ab..8bd0e6c92 100644
--- a/src/net45/WampSharp/WAMP2/V2/Client/Session/WampAuthenticationNotImplementedException.cs
+++ b/src/net45/WampSharp/WAMP2/V2/Client/Session/WampAuthenticationNotImplementedException.cs
@@ -8,9 +8,7 @@ namespace WampSharp.V2.Client
/// Occurs when an CHALLENGE message has been received,
/// but no has been provided.
///
-#if !PCL
[Serializable]
-#endif
public class WampAuthenticationNotImplementedException : WampAuthenticationException
{
///
diff --git a/src/net45/WampSharp/WAMP2/V2/Client/WampSessionNotEstablishedException.cs b/src/net45/WampSharp/WAMP2/V2/Client/WampSessionNotEstablishedException.cs
index fea0b9916..b49df9ff8 100644
--- a/src/net45/WampSharp/WAMP2/V2/Client/WampSessionNotEstablishedException.cs
+++ b/src/net45/WampSharp/WAMP2/V2/Client/WampSessionNotEstablishedException.cs
@@ -3,9 +3,7 @@
namespace WampSharp.V2.Client
{
-#if !PCL
[Serializable]
-#endif
public class WampSessionNotEstablishedException : Exception
{
public WampSessionNotEstablishedException() : this("No connection to router is currently available.")
diff --git a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/PubSub/EventDetails.cs b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/PubSub/EventDetails.cs
index 8f89b35ac..51a519e30 100644
--- a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/PubSub/EventDetails.cs
+++ b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/PubSub/EventDetails.cs
@@ -1,3 +1,4 @@
+using System;
using System.Runtime.Serialization;
using WampSharp.Core.Message;
@@ -7,6 +8,7 @@ namespace WampSharp.V2.Core.Contracts
/// Represents details for EVENT message.
///
[DataContract]
+ [Serializable]
[WampDetailsOptions(WampMessageType.v2Event)]
public class EventDetails : WampDetailsOptions
{
diff --git a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/PubSub/PublishOptions.cs b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/PubSub/PublishOptions.cs
index 3d3a94015..5bf66ef4e 100644
--- a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/PubSub/PublishOptions.cs
+++ b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/PubSub/PublishOptions.cs
@@ -1,9 +1,11 @@
-using System.Runtime.Serialization;
+using System;
+using System.Runtime.Serialization;
using WampSharp.Core.Message;
namespace WampSharp.V2.Core.Contracts
{
[DataContract]
+ [Serializable]
[WampDetailsOptions(WampMessageType.v2Publish)]
public class PublishOptions : WampDetailsOptions
{
diff --git a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/PubSub/PublishOptionsExtended.cs b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/PubSub/PublishOptionsExtended.cs
index 68962f004..5c96191f8 100644
--- a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/PubSub/PublishOptionsExtended.cs
+++ b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/PubSub/PublishOptionsExtended.cs
@@ -1,8 +1,10 @@
-using System.Runtime.Serialization;
+using System;
+using System.Runtime.Serialization;
namespace WampSharp.V2.Core.Contracts
{
[DataContract]
+ [Serializable]
public class PublishOptionsExtended : PublishOptions
{
public PublishOptionsExtended(PublishOptions options) : base(options)
diff --git a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/PubSub/SubscribeOptions.cs b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/PubSub/SubscribeOptions.cs
index 169bbc271..645f6c706 100644
--- a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/PubSub/SubscribeOptions.cs
+++ b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/PubSub/SubscribeOptions.cs
@@ -1,9 +1,11 @@
-using System.Runtime.Serialization;
+using System;
+using System.Runtime.Serialization;
using WampSharp.Core.Message;
namespace WampSharp.V2.Core.Contracts
{
[DataContract]
+ [Serializable]
[WampDetailsOptions(WampMessageType.v2Subscribe)]
public class SubscribeOptions : WampDetailsOptions
{
diff --git a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/CallOptions.cs b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/CallOptions.cs
index 0d2ecb68c..af6a3a033 100644
--- a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/CallOptions.cs
+++ b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/CallOptions.cs
@@ -1,9 +1,11 @@
-using System.Runtime.Serialization;
+using System;
+using System.Runtime.Serialization;
using WampSharp.Core.Message;
namespace WampSharp.V2.Core.Contracts
{
[DataContract]
+ [Serializable]
[WampDetailsOptions(WampMessageType.v2Call)]
public class CallOptions : WampDetailsOptions
{
diff --git a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/CancelOptions.cs b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/CancelOptions.cs
index 1ad9813c4..cdcc2c502 100644
--- a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/CancelOptions.cs
+++ b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/CancelOptions.cs
@@ -1,8 +1,12 @@
-using System.Runtime.Serialization;
+using System;
+using System.Runtime.Serialization;
+using WampSharp.Core.Message;
namespace WampSharp.V2.Core.Contracts
{
[DataContract]
+ [Serializable]
+ [WampDetailsOptions(WampMessageType.v2Cancel)]
public class CancelOptions : WampDetailsOptions
{
}
diff --git a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/InvocationDetails.cs b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/InvocationDetails.cs
index 74f828c8d..2131b9e2f 100644
--- a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/InvocationDetails.cs
+++ b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/InvocationDetails.cs
@@ -1,9 +1,11 @@
-using System.Runtime.Serialization;
+using System;
+using System.Runtime.Serialization;
using WampSharp.Core.Message;
namespace WampSharp.V2.Core.Contracts
{
[DataContract]
+ [Serializable]
[WampDetailsOptions(WampMessageType.v2Invocation)]
public class InvocationDetails : WampDetailsOptions
{
diff --git a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/InvocationDetailsExtended.cs b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/InvocationDetailsExtended.cs
index 56bbfaa62..c06015a50 100644
--- a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/InvocationDetailsExtended.cs
+++ b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/InvocationDetailsExtended.cs
@@ -1,8 +1,10 @@
+using System;
using System.Runtime.Serialization;
namespace WampSharp.V2.Core.Contracts
{
[DataContract]
+ [Serializable]
public class InvocationDetailsExtended : InvocationDetails
{
public InvocationDetailsExtended()
diff --git a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/RegisterOptions.cs b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/RegisterOptions.cs
index b65eeebca..81e8de040 100644
--- a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/RegisterOptions.cs
+++ b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/RegisterOptions.cs
@@ -1,9 +1,11 @@
-using System.Runtime.Serialization;
+using System;
+using System.Runtime.Serialization;
using WampSharp.Core.Message;
namespace WampSharp.V2.Core.Contracts
{
[DataContract]
+ [Serializable]
[WampDetailsOptions(WampMessageType.v2Register)]
public class RegisterOptions : WampDetailsOptions
{
diff --git a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/ResultDetails.cs b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/ResultDetails.cs
index e1d3c508f..9565b132f 100644
--- a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/ResultDetails.cs
+++ b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/ResultDetails.cs
@@ -1,9 +1,11 @@
+using System;
using System.Runtime.Serialization;
using WampSharp.Core.Message;
namespace WampSharp.V2.Core.Contracts
{
[DataContract]
+ [Serializable]
[WampDetailsOptions(WampMessageType.v2Result)]
public class ResultDetails : WampDetailsOptions
{
diff --git a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/YieldOptions.cs b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/YieldOptions.cs
index f51bee751..4f1117e25 100644
--- a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/YieldOptions.cs
+++ b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/YieldOptions.cs
@@ -1,9 +1,11 @@
-using System.Runtime.Serialization;
+using System;
+using System.Runtime.Serialization;
using WampSharp.Core.Message;
namespace WampSharp.V2.Core.Contracts
{
[DataContract]
+ [Serializable]
[WampDetailsOptions(WampMessageType.v2Yield)]
public class YieldOptions : WampDetailsOptions
{
diff --git a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/AbortDetails.cs b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/AbortDetails.cs
index cd31d260e..d3eaa2a11 100644
--- a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/AbortDetails.cs
+++ b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/AbortDetails.cs
@@ -1,4 +1,6 @@
+using System;
using System.Runtime.Serialization;
+using WampSharp.Core.Message;
namespace WampSharp.V2.Core.Contracts
{
@@ -6,6 +8,8 @@ namespace WampSharp.V2.Core.Contracts
/// Represents details of an ABORT message.
///
[DataContract]
+ [Serializable]
+ [WampDetailsOptions(WampMessageType.v2Abort)]
public class AbortDetails : GoodbyeAbortDetails
{
}
diff --git a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/AuthenticateExtraData.cs b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/AuthenticateExtraData.cs
index 21a55c245..bf67e5bcc 100644
--- a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/AuthenticateExtraData.cs
+++ b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/AuthenticateExtraData.cs
@@ -1,7 +1,11 @@
+using System;
+using System.Runtime.Serialization;
using WampSharp.Core.Message;
namespace WampSharp.V2.Core.Contracts
{
+ [DataContract]
+ [Serializable]
[WampDetailsOptions(WampMessageType.v2Authenticate)]
public class AuthenticateExtraData : WampDetailsOptions
{
diff --git a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/ChallengeDetails.cs b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/ChallengeDetails.cs
index ed7a570d5..374992c64 100644
--- a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/ChallengeDetails.cs
+++ b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/ChallengeDetails.cs
@@ -1,8 +1,12 @@
+using System;
using System.Runtime.Serialization;
+using WampSharp.Core.Message;
namespace WampSharp.V2.Core.Contracts
{
[DataContract]
+ [Serializable]
+ [WampDetailsOptions(WampMessageType.v2Challenge)]
public class ChallengeDetails : WampDetailsOptions
{
}
diff --git a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/GoodbyeAbortDetails.cs b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/GoodbyeAbortDetails.cs
index 4e4536821..08549bac9 100644
--- a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/GoodbyeAbortDetails.cs
+++ b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/GoodbyeAbortDetails.cs
@@ -1,8 +1,10 @@
+using System;
using System.Runtime.Serialization;
namespace WampSharp.V2.Core.Contracts
{
[DataContract]
+ [Serializable]
public abstract class GoodbyeAbortDetails : WampDetailsOptions
{
///
diff --git a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/GoodbyeDetails.cs b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/GoodbyeDetails.cs
index beb236630..edcedfe29 100644
--- a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/GoodbyeDetails.cs
+++ b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/GoodbyeDetails.cs
@@ -1,4 +1,6 @@
+using System;
using System.Runtime.Serialization;
+using WampSharp.Core.Message;
namespace WampSharp.V2.Core.Contracts
{
@@ -6,6 +8,8 @@ namespace WampSharp.V2.Core.Contracts
/// Represents details of a GOODBYE message.
///
[DataContract]
+ [Serializable]
+ [WampDetailsOptions(WampMessageType.v2Goodbye)]
public class GoodbyeDetails : GoodbyeAbortDetails
{
}
diff --git a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/HelloDetails.cs b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/HelloDetails.cs
index 704319fe9..fda7853bb 100644
--- a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/HelloDetails.cs
+++ b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/HelloDetails.cs
@@ -1,3 +1,4 @@
+using System;
using System.Runtime.Serialization;
using WampSharp.Core.Message;
using WampSharp.V2.MetaApi;
@@ -5,6 +6,7 @@
namespace WampSharp.V2.Core.Contracts
{
[DataContract]
+ [Serializable]
[WampDetailsOptions(WampMessageType.v2Hello)]
public class HelloDetails : WampDetailsOptions
{
diff --git a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/WelcomeDetails.cs b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/WelcomeDetails.cs
index d9c068965..9baf3ebec 100644
--- a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/WelcomeDetails.cs
+++ b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/WelcomeDetails.cs
@@ -1,9 +1,11 @@
-using System.Runtime.Serialization;
+using System;
+using System.Runtime.Serialization;
using WampSharp.Core.Message;
namespace WampSharp.V2.Core.Contracts
{
[DataContract]
+ [Serializable]
[WampDetailsOptions(WampMessageType.v2Welcome)]
public class WelcomeDetails : WampDetailsOptions
{
diff --git a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/WampConnectionBrokenException.cs b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/WampConnectionBrokenException.cs
index 7fcb001e7..f0589bd4e 100644
--- a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/WampConnectionBrokenException.cs
+++ b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/WampConnectionBrokenException.cs
@@ -4,9 +4,7 @@
namespace WampSharp.V2.Core.Contracts
{
-#if !PCL
[Serializable]
-#endif
public class WampConnectionBrokenException : Exception
{
private readonly WampSessionCloseEventArgs mEventArgs;
diff --git a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/WampDetailsOptions.cs b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/WampDetailsOptions.cs
index c60e4fd95..e2e5ecdca 100644
--- a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/WampDetailsOptions.cs
+++ b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/WampDetailsOptions.cs
@@ -1,21 +1,26 @@
-using System.Runtime.Serialization;
+using System;
+using System.Runtime.Serialization;
namespace WampSharp.V2.Core.Contracts
{
///
/// An abstract class for WampDetails/WampOptions types.
///
+ [Serializable]
[DataContract]
public abstract class WampDetailsOptions
{
+ [NonSerialized]
+ private ISerializedValue mOriginalValue;
+
///
/// The original (serialized) received value.
///
[IgnoreDataMember]
public ISerializedValue OriginalValue
{
- get;
- set;
+ get { return mOriginalValue; }
+ set { mOriginalValue = value; }
}
}
}
\ No newline at end of file
diff --git a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/WampException.cs b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/WampException.cs
index 736b00f6e..7b408feca 100644
--- a/src/net45/WampSharp/WAMP2/V2/Core/Contracts/WampException.cs
+++ b/src/net45/WampSharp/WAMP2/V2/Core/Contracts/WampException.cs
@@ -5,9 +5,7 @@
namespace WampSharp.V2.Core.Contracts
{
-#if !PCL
[Serializable]
-#endif
public class WampException : Exception
{
private readonly string mErrorUri;
diff --git a/src/net45/WampSharp/WAMP2/V2/Rpc/WampRpcRuntimeException.cs b/src/net45/WampSharp/WAMP2/V2/Rpc/WampRpcRuntimeException.cs
index 2e608f4ed..bbb99b540 100644
--- a/src/net45/WampSharp/WAMP2/V2/Rpc/WampRpcRuntimeException.cs
+++ b/src/net45/WampSharp/WAMP2/V2/Rpc/WampRpcRuntimeException.cs
@@ -5,9 +5,7 @@
namespace WampSharp.V2.Rpc
{
-#if !PCL
[Serializable]
-#endif
public class WampRpcRuntimeException : WampException
{
private const string ErrorUri = "wamp.error.runtime_error";
diff --git a/src/net45/WampSharp/WampSharp.csproj b/src/net45/WampSharp/WampSharp.csproj
index 74108d84c..bc98fa1c6 100644
--- a/src/net45/WampSharp/WampSharp.csproj
+++ b/src/net45/WampSharp/WampSharp.csproj
@@ -136,6 +136,7 @@
+
diff --git a/src/pcl/WampSharp/WampSharp.csproj b/src/pcl/WampSharp/WampSharp.csproj
index 7f6997f4a..a9c48860c 100644
--- a/src/pcl/WampSharp/WampSharp.csproj
+++ b/src/pcl/WampSharp/WampSharp.csproj
@@ -263,6 +263,9 @@
Core\Utilities\Method.cs
+
+ Core\Utilities\SerializableAttribute.cs
+
Core\Utilities\ReadOnlyDictionary.cs