首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Akka.net Hyperion IgnoringDataMember

Akka.net Hyperion IgnoringDataMember
EN

Stack Overflow用户
提问于 2018-03-06 18:20:11
回答 1查看 182关注 0票数 0

我在集群模式中使用akka.net。(n)处理节点,目前有1个灯塔。

其中一个通过网络导航的包暴露了语言信息。

代码语言:javascript
运行
复制
    /// <summary>
/// Define scored a suite of token info
/// </summary>
/// <seealso cref="Hammer.Immutable.ImmutableObject" />
[DataContract]
public sealed class TokenSuite : ImmutableObject, IIdItem
{
    #region Ctor

    /// <summary>
    /// Initializes a new instance of the <see cref="TokenSuite"/> class.
    /// </summary>
    public TokenSuite(Guid id, string langCode)
        : base(id, langCode)
    {
        this.Id = id;
        this.LangCode = langCode;

        if (!string.IsNullOrEmpty(langCode))
            LangInfo = CultureInfo.GetCultureInfoByIetfLanguageTag(langCode);
    }

    #endregion

    #region Properties

    /// <summary>
    /// Gets the identifier.
    /// </summary>
    [DataMember]
    public Guid Id { get; }

    /// <summary>
    /// Gets the main language code.
    /// </summary>
    [DataMember]
    public string LangCode { get; }

    /// <summary>
    /// Gets the lang information.
    /// </summary>
    [IgnoreDataMember]
    public CultureInfo LangInfo { get; }


    #endregion

在本地没有问题,但当它通过网络(序列化)时,我在灯塔上遇到了这个问题:

读取错误时,它似乎来自CultureInfo对象,但它是序列化中要忽略的标志。

我使用Akka版本1.3.5,Hyperion 0.9.8,Akka.Serialization.Hyperion 1.3.2-beta54。

我尝试在本地进行序列化,它可以工作:

代码语言:javascript
运行
复制
var serializer = Context.System.Serialization.FindSerializerForType(typeof(TokenSuite));
var data = serializer.ToBinary(result);
var rtoObjectBack = serializer.FromBinary<TokenSuite>(data);

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2018-03-06 18:25:38

Hyperion不使用任何数据协定属性。这也意味着[IgnoreDataMember]不会被考虑在内。

可能在尝试反序列化您提供的CultureInfo对象时失败。您可以始终尝试将其转换为字符串,并在反序列化后解析。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49128437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档