diff --git a/src/core/Akka/Actor/ActorRefProvider.cs b/src/core/Akka/Actor/ActorRefProvider.cs
index f6039c33d00..3522756da1d 100644
--- a/src/core/Akka/Actor/ActorRefProvider.cs
+++ b/src/core/Akka/Actor/ActorRefProvider.cs
@@ -10,18 +10,22 @@
using System.Linq;
using System.Threading.Tasks;
using Akka.Actor.Internal;
+using Akka.Annotations;
using Akka.Configuration;
using Akka.Dispatch;
using Akka.Dispatch.SysMsg;
using Akka.Event;
using Akka.Routing;
+using Akka.Serialization;
using Akka.Util;
using Akka.Util.Internal;
namespace Akka.Actor
{
///
- /// TBD
+ /// The Actor Reference Provider API.
+ ///
+ /// The factory used to produce and create instances used inside an .
///
public interface IActorRefProvider
{
@@ -133,6 +137,12 @@ public interface IActorRefProvider
/// Gets the external address of the default transport.
Address DefaultAddress { get; }
+
+ ///
+ /// INTERNAL API.
+ ///
+ [InternalApi]
+ Information SerializationInformation { get; }
}
///
diff --git a/src/core/Akka/Serialization/Serialization.cs b/src/core/Akka/Serialization/Serialization.cs
index 03aaf7384af..fadeebe7493 100644
--- a/src/core/Akka/Serialization/Serialization.cs
+++ b/src/core/Akka/Serialization/Serialization.cs
@@ -13,23 +13,61 @@
using System.Reflection;
using System.Runtime.Serialization;
using Akka.Actor;
+using Akka.Annotations;
using Akka.Util.Internal;
using Akka.Util.Reflection;
namespace Akka.Serialization
{
///
+ /// INTERNAL API.
+ ///
/// Serialization information needed for serializing local actor refs.
///
- internal class Information
+ [InternalApi]
+ public sealed class Information : IEquatable
{
public Address Address { get; set; }
public ActorSystem System { get; set; }
+
+ public bool Equals(Information other)
+ {
+ if (ReferenceEquals(null, other)) return false;
+ if (ReferenceEquals(this, other)) return true;
+ return Address.Equals(other.Address) && System.Equals(other.System);
+ }
+
+ public override bool Equals(object obj)
+ {
+ if (ReferenceEquals(null, obj)) return false;
+ if (ReferenceEquals(this, obj)) return true;
+ if (obj.GetType() != this.GetType()) return false;
+ return Equals((Information)obj);
+ }
+
+ public override int GetHashCode()
+ {
+ unchecked
+ {
+ return (Address.GetHashCode() * 397) ^ System.GetHashCode();
+ }
+ }
+
+ public static bool operator ==(Information left, Information right)
+ {
+ return Equals(left, right);
+ }
+
+ public static bool operator !=(Information left, Information right)
+ {
+ return !Equals(left, right);
+ }
}
///
- /// TBD
+ /// The serialization system used by Akka.NET to serialize and deserialize objects
+ /// per the 's serialization configuration.
///
public class Serialization
{