Skip to content

Commit 7bfc94c

Browse files
committed
Merge pull request #127 from Code-Sharp/develop
Making contracts serializable
2 parents 71396ff + d5e3437 commit 7bfc94c

33 files changed

+89
-30
lines changed

src/mono/WampSharp/WampSharp.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,9 @@
260260
<Compile Include="..\..\net45\WampSharp\Core\Utilities\Method.cs">
261261
<Link>Core\Utilities\Method.cs</Link>
262262
</Compile>
263+
<Compile Include="..\..\net45\WampSharp\Core\Utilities\SerializableAttribute.cs">
264+
<Link>Core\Utilities\SerializableAttribute.cs</Link>
265+
</Compile>
263266
<Compile Include="..\..\net45\WampSharp\Core\Utilities\ReadOnlyDictionary.cs">
264267
<Link>Core\Utilities\ReadOnlyDictionary.cs</Link>
265268
</Compile>

src/net40/WampSharp/WampSharp.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,9 @@
264264
<Compile Include="..\..\net45\WampSharp\Core\Utilities\Method.cs">
265265
<Link>Core\Utilities\Method.cs</Link>
266266
</Compile>
267+
<Compile Include="..\..\net45\WampSharp\Core\Utilities\SerializableAttribute.cs">
268+
<Link>Core\Utilities\SerializableAttribute.cs</Link>
269+
</Compile>
267270
<Compile Include="..\..\net45\WampSharp\Core\Utilities\ReadOnlyDictionary.cs">
268271
<Link>Core\Utilities\ReadOnlyDictionary.cs</Link>
269272
</Compile>

src/net45/WampSharp.WAMP1/WAMP1/V1/Api/Server/WampRequestContext.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55

66
namespace WampSharp.V1
77
{
8-
#if !PCL
98
[Serializable]
10-
#endif
119
public class WampRequestContext
1210
{
1311
#region Static Members
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#if PCL
2+
3+
namespace System
4+
{
5+
[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
6+
internal sealed class SerializableAttribute : Attribute
7+
{
8+
}
9+
10+
[AttributeUsage(AttributeTargets.Field, Inherited = false, AllowMultiple = false)]
11+
internal sealed class NonSerializedAttribute : Attribute
12+
{
13+
}
14+
}
15+
16+
#endif

src/net45/WampSharp/WAMP2/V2/Api/WampEventContext.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@ namespace WampSharp.V2
99
/// <summary>
1010
/// Includes information about the current event.
1111
/// </summary>
12-
#if !PCL
1312
[Serializable]
14-
#endif
1513
public class WampEventContext
1614
{
1715

src/net45/WampSharp/WAMP2/V2/Api/WampInvocationContext.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,7 @@ namespace WampSharp.V2
1010
/// <summary>
1111
/// Includes information about the current invocation.
1212
/// </summary>
13-
#if !PCL
1413
[Serializable]
15-
#endif
1614
public class WampInvocationContext
1715
{
1816
#region Static Members

src/net45/WampSharp/WAMP2/V2/Authentication/WampAuthenticationException.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@ namespace WampSharp.V2.Authentication
77
/// An exception that can be thrown if can't authenticate with router.
88
/// This sends an ABORT message to the router.
99
/// </summary>
10-
#if !PCL
1110
[Serializable]
12-
#endif
1311
public class WampAuthenticationException : Exception
1412
{
1513
protected const string DefaultMessage = "sorry, I cannot authenticate (onchallenge handler raised an exception)";

src/net45/WampSharp/WAMP2/V2/Client/Session/WampAuthenticationNotImplementedException.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@ namespace WampSharp.V2.Client
88
/// Occurs when an CHALLENGE message has been received,
99
/// but no <see cref="IWampClientAuthenticator"/> has been provided.
1010
/// </summary>
11-
#if !PCL
1211
[Serializable]
13-
#endif
1412
public class WampAuthenticationNotImplementedException : WampAuthenticationException
1513
{
1614
/// <summary>

src/net45/WampSharp/WAMP2/V2/Client/WampSessionNotEstablishedException.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33

44
namespace WampSharp.V2.Client
55
{
6-
#if !PCL
76
[Serializable]
8-
#endif
97
public class WampSessionNotEstablishedException : Exception
108
{
119
public WampSessionNotEstablishedException() : this("No connection to router is currently available.")

src/net45/WampSharp/WAMP2/V2/Core/Contracts/PubSub/EventDetails.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using System;
12
using System.Runtime.Serialization;
23
using WampSharp.Core.Message;
34

@@ -7,6 +8,7 @@ namespace WampSharp.V2.Core.Contracts
78
/// Represents details for EVENT message.
89
/// </summary>
910
[DataContract]
11+
[Serializable]
1012
[WampDetailsOptions(WampMessageType.v2Event)]
1113
public class EventDetails : WampDetailsOptions
1214
{

src/net45/WampSharp/WAMP2/V2/Core/Contracts/PubSub/PublishOptions.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
using System.Runtime.Serialization;
1+
using System;
2+
using System.Runtime.Serialization;
23
using WampSharp.Core.Message;
34

45
namespace WampSharp.V2.Core.Contracts
56
{
67
[DataContract]
8+
[Serializable]
79
[WampDetailsOptions(WampMessageType.v2Publish)]
810
public class PublishOptions : WampDetailsOptions
911
{

src/net45/WampSharp/WAMP2/V2/Core/Contracts/PubSub/PublishOptionsExtended.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
using System.Runtime.Serialization;
1+
using System;
2+
using System.Runtime.Serialization;
23

34
namespace WampSharp.V2.Core.Contracts
45
{
56
[DataContract]
7+
[Serializable]
68
public class PublishOptionsExtended : PublishOptions
79
{
810
public PublishOptionsExtended(PublishOptions options) : base(options)

src/net45/WampSharp/WAMP2/V2/Core/Contracts/PubSub/SubscribeOptions.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
using System.Runtime.Serialization;
1+
using System;
2+
using System.Runtime.Serialization;
23
using WampSharp.Core.Message;
34

45
namespace WampSharp.V2.Core.Contracts
56
{
67
[DataContract]
8+
[Serializable]
79
[WampDetailsOptions(WampMessageType.v2Subscribe)]
810
public class SubscribeOptions : WampDetailsOptions
911
{

src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/CallOptions.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
using System.Runtime.Serialization;
1+
using System;
2+
using System.Runtime.Serialization;
23
using WampSharp.Core.Message;
34

45
namespace WampSharp.V2.Core.Contracts
56
{
67
[DataContract]
8+
[Serializable]
79
[WampDetailsOptions(WampMessageType.v2Call)]
810
public class CallOptions : WampDetailsOptions
911
{

src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/CancelOptions.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
1-
using System.Runtime.Serialization;
1+
using System;
2+
using System.Runtime.Serialization;
3+
using WampSharp.Core.Message;
24

35
namespace WampSharp.V2.Core.Contracts
46
{
57
[DataContract]
8+
[Serializable]
9+
[WampDetailsOptions(WampMessageType.v2Cancel)]
610
public class CancelOptions : WampDetailsOptions
711
{
812
}

src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/InvocationDetails.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
using System.Runtime.Serialization;
1+
using System;
2+
using System.Runtime.Serialization;
23
using WampSharp.Core.Message;
34

45
namespace WampSharp.V2.Core.Contracts
56
{
67
[DataContract]
8+
[Serializable]
79
[WampDetailsOptions(WampMessageType.v2Invocation)]
810
public class InvocationDetails : WampDetailsOptions
911
{

src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/InvocationDetailsExtended.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
using System;
12
using System.Runtime.Serialization;
23

34
namespace WampSharp.V2.Core.Contracts
45
{
56
[DataContract]
7+
[Serializable]
68
public class InvocationDetailsExtended : InvocationDetails
79
{
810
public InvocationDetailsExtended()

src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/RegisterOptions.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
using System.Runtime.Serialization;
1+
using System;
2+
using System.Runtime.Serialization;
23
using WampSharp.Core.Message;
34

45
namespace WampSharp.V2.Core.Contracts
56
{
67
[DataContract]
8+
[Serializable]
79
[WampDetailsOptions(WampMessageType.v2Register)]
810
public class RegisterOptions : WampDetailsOptions
911
{

src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/ResultDetails.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1+
using System;
12
using System.Runtime.Serialization;
23
using WampSharp.Core.Message;
34

45
namespace WampSharp.V2.Core.Contracts
56
{
67
[DataContract]
8+
[Serializable]
79
[WampDetailsOptions(WampMessageType.v2Result)]
810
public class ResultDetails : WampDetailsOptions
911
{

src/net45/WampSharp/WAMP2/V2/Core/Contracts/Rpc/YieldOptions.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
using System.Runtime.Serialization;
1+
using System;
2+
using System.Runtime.Serialization;
23
using WampSharp.Core.Message;
34

45
namespace WampSharp.V2.Core.Contracts
56
{
67
[DataContract]
8+
[Serializable]
79
[WampDetailsOptions(WampMessageType.v2Yield)]
810
public class YieldOptions : WampDetailsOptions
911
{

src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/AbortDetails.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
1+
using System;
12
using System.Runtime.Serialization;
3+
using WampSharp.Core.Message;
24

35
namespace WampSharp.V2.Core.Contracts
46
{
57
/// <summary>
68
/// Represents details of an ABORT message.
79
/// </summary>
810
[DataContract]
11+
[Serializable]
12+
[WampDetailsOptions(WampMessageType.v2Abort)]
913
public class AbortDetails : GoodbyeAbortDetails
1014
{
1115
}

src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/AuthenticateExtraData.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
1+
using System;
2+
using System.Runtime.Serialization;
13
using WampSharp.Core.Message;
24

35
namespace WampSharp.V2.Core.Contracts
46
{
7+
[DataContract]
8+
[Serializable]
59
[WampDetailsOptions(WampMessageType.v2Authenticate)]
610
public class AuthenticateExtraData : WampDetailsOptions
711
{

src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/ChallengeDetails.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
1+
using System;
12
using System.Runtime.Serialization;
3+
using WampSharp.Core.Message;
24

35
namespace WampSharp.V2.Core.Contracts
46
{
57
[DataContract]
8+
[Serializable]
9+
[WampDetailsOptions(WampMessageType.v2Challenge)]
610
public class ChallengeDetails : WampDetailsOptions
711
{
812
}

src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/GoodbyeAbortDetails.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
using System;
12
using System.Runtime.Serialization;
23

34
namespace WampSharp.V2.Core.Contracts
45
{
56
[DataContract]
7+
[Serializable]
68
public abstract class GoodbyeAbortDetails : WampDetailsOptions
79
{
810
/// <summary>

src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/GoodbyeDetails.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
1+
using System;
12
using System.Runtime.Serialization;
3+
using WampSharp.Core.Message;
24

35
namespace WampSharp.V2.Core.Contracts
46
{
57
/// <summary>
68
/// Represents details of a GOODBYE message.
79
/// </summary>
810
[DataContract]
11+
[Serializable]
12+
[WampDetailsOptions(WampMessageType.v2Goodbye)]
913
public class GoodbyeDetails : GoodbyeAbortDetails
1014
{
1115
}

src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/HelloDetails.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1+
using System;
12
using System.Runtime.Serialization;
23
using WampSharp.Core.Message;
34
using WampSharp.V2.MetaApi;
45

56
namespace WampSharp.V2.Core.Contracts
67
{
78
[DataContract]
9+
[Serializable]
810
[WampDetailsOptions(WampMessageType.v2Hello)]
911
public class HelloDetails : WampDetailsOptions
1012
{

src/net45/WampSharp/WAMP2/V2/Core/Contracts/Session/WelcomeDetails.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
using System.Runtime.Serialization;
1+
using System;
2+
using System.Runtime.Serialization;
23
using WampSharp.Core.Message;
34

45
namespace WampSharp.V2.Core.Contracts
56
{
67
[DataContract]
8+
[Serializable]
79
[WampDetailsOptions(WampMessageType.v2Welcome)]
810
public class WelcomeDetails : WampDetailsOptions
911
{

src/net45/WampSharp/WAMP2/V2/Core/Contracts/WampConnectionBrokenException.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@
44

55
namespace WampSharp.V2.Core.Contracts
66
{
7-
#if !PCL
87
[Serializable]
9-
#endif
108
public class WampConnectionBrokenException : Exception
119
{
1210
private readonly WampSessionCloseEventArgs mEventArgs;
Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,26 @@
1-
using System.Runtime.Serialization;
1+
using System;
2+
using System.Runtime.Serialization;
23

34
namespace WampSharp.V2.Core.Contracts
45
{
56
/// <summary>
67
/// An abstract class for WampDetails/WampOptions types.
78
/// </summary>
9+
[Serializable]
810
[DataContract]
911
public abstract class WampDetailsOptions
1012
{
13+
[NonSerialized]
14+
private ISerializedValue mOriginalValue;
15+
1116
/// <summary>
1217
/// The original (serialized) received value.
1318
/// </summary>
1419
[IgnoreDataMember]
1520
public ISerializedValue OriginalValue
1621
{
17-
get;
18-
set;
22+
get { return mOriginalValue; }
23+
set { mOriginalValue = value; }
1924
}
2025
}
2126
}

src/net45/WampSharp/WAMP2/V2/Core/Contracts/WampException.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55

66
namespace WampSharp.V2.Core.Contracts
77
{
8-
#if !PCL
98
[Serializable]
10-
#endif
119
public class WampException : Exception
1210
{
1311
private readonly string mErrorUri;

src/net45/WampSharp/WAMP2/V2/Rpc/WampRpcRuntimeException.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55

66
namespace WampSharp.V2.Rpc
77
{
8-
#if !PCL
98
[Serializable]
10-
#endif
119
public class WampRpcRuntimeException : WampException
1210
{
1311
private const string ErrorUri = "wamp.error.runtime_error";

0 commit comments

Comments
 (0)