小编6fo*_*der的帖子

BinaryFormatter异常

我正在尝试将对象图从服务器进程移动到客户端.它有效.至少它可以在客户端和服务器都在我的开发虚拟机上时工作.当我在我的基本机器(dev vm上的客户端)上运行服务器时,它也可以工作.

当我在媒体中心PC上运行服务器时,它停止工作.例外是:

二进制流'0'不包含有效的BinaryHeader.可能的原因是序列化和反序列化之间的无效流或对象版本更改.

这三台PC都是x64 Windows 7机器.我正在使用TCPClient和TCPListener以及BinaryFormatter类来完成繁重的工作.

使用标准FileStream对象从文件中读取正在传输的数据.

如果在客户端我将缓冲区序列化为文件,那么内容(根据BeyondCompare)确实看起来确实有所不同?!?

我的对象上的所有字符串属性都是在setter中进行Base64编码并在getter中解码.

我可以发布代码,但我不确定问题所在的位置?有任何想法吗?

.net c# serialization exception binaryformatter

8
推荐指数
1
解决办法
1687
查看次数

NHibernate POCO/Basics

我之前使用的是L2S,我正在考虑在项目中使用NHib和Sharp Architecture.我已经开始原型设计并遇到了第一个问题,我不知道如何谷歌.

给定一个具有一些简单属性的POCO和一个引用属性(Category - 类未在此处显示):

public class Post
{
  public Post()
  {
    this.DateCreated = DateTime.Now;
  }

  public virtual string Title {get;set;}
  public virtual DateCreated {get;set;}
  public virtual Category {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

如果我想以表格格式生成帖子摘要,这是很方便的 - 如果我想要一个名为"类别"的列,并且我想显示类别标题,我可以简单地使用Post.Category.Title.

但是,用户创建新帖子(他们从下拉列表或类似列表中选择一个类别).他们点击提交,然后我新建了一个Post对象.但是,在我可以持久保存新帖子之前,我必须检索一个Category(通过id)的实例来分配给Category属性?

如何充分利用这两个世界?如果我更新Post POCO,使Category成为int,我就更容易创建新实例.但是对于一些渲染代码来说更难,现在必须解析给定Id的类别名称?

我觉得我在这里缺少一些基本概念?

我知道Linq to Sql给出了一个模式,其中Post表有一个名为CategoryId的整数foriegn键列,它将生成基础表列(CategoryId)和包含外键行的EntitySet.

如何在NHibernate中实现类似的效果?这通常如何管理?

谢谢

c# mapping nhibernate poco

5
推荐指数
1
解决办法
3682
查看次数

AutoMapper字符串以枚举描述

鉴于要求:

获取对象图,根据第二个字符串属性的处理值设置所有枚举类型属性.约定规定源字符串属性的名称将是具有后缀"Raw"的枚举属性的名称.

通过处理我们意味着我们需要剥离指定的字符等

我看过自定义格式化程序,值解析器和类型转换器,这些都不是解决方案吗?

我们希望使用AutoMapper而不是我们自己的反射例程,原因有两个:a)它在项目的其余部分广泛使用,b)它为您提供递归遍历ootb.

- 示例 -

鉴于下面的(简单)结构,这个:

var tmp = new SimpleClass 
  { 
       CountryRaw = "United States",
       Person = new Person { GenderRaw="Male" }
  };

var tmp2 = new SimpleClass();

Mapper.Map(tmp, tmp2);
Run Code Online (Sandbox Code Playgroud)

我们希望tmp2的MappedCountry枚举为Country.UnitedStates,Person属性的性别为Gender.Male.

public class SimpleClass1
{
  public string CountryRaw {get;set;}

  public Country MappedCountry {get;set;}

  public Person Person {get;set;}
}

public class Person
{
  public string GenderRaw {get;set;}

  public Gender Gender {get;set;}

  public string Surname {get;set;}
}

public enum Country
{
  UnitedStates = 1,
  NewZealand = …
Run Code Online (Sandbox Code Playgroud)

enums automapper valueinjecter

5
推荐指数
1
解决办法
3314
查看次数

如何使用角度ui-router验证状态

我们正在使用angular-ui-router(相信版本0.2.10).

到达州有两种主要方式,

  • a)用户点击/修改对应于状态的URL
  • b)代码某处,例如,控制器调用$ state.go().

我们希望在以下情况下a)验证状态(例如,它是否根据一个或多个业务规则有效),但在情况b)中不这样做,因为我们非常确定我们的应用程序只会转换到有效状态.

情况a)通常需要http往返来执行验证,如果可能的话我们希望避免.

这将如何实施?

谢谢!

angularjs angular-ui-router

5
推荐指数
1
解决办法
1486
查看次数

C#如何使用NSwag处理多态模型

我有一个多态模型:

public class CreateOrderRequest
{
    public List<CreateOrderItem> OrderItems { get; set; } 
}

/// <summary>
/// Identifies a new item within an order
/// </summary>    
[JsonConverter(typeof(CreateOrderLineJsonConvertor))]
[KnownType("GetKnownTypes")]
public class CreateOrderItem
{
    public string OrderContext { get; set; }
    public string OrderItemType { get; set; }

    public static Type[] GetKnownTypes()
    {
        return new[]
        {
            typeof(OrderItemType1), typeof(OrderItemType2)
        };
    }
}

public class OrderItemType1: CreateOrderItem
{
     public string Type1Prop {get;set;}
}

public class OrderItemType2: CreateOrderItem
{
     public string Type2Prop {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

根据文档使用NSwag(NSwag.AspNetCore),我希望这足够了,以便文档指示/包含订单项类型?但不是...

在此处输入图片说明

我是否完全错过了NSwag的要求?我有OrderItemType属性。我需要让歧视者参与吗?这在哪里记录? …

c# polymorphism nswag

5
推荐指数
1
解决办法
1510
查看次数

XmlSerializer +多态性

给定(设计的)基类,以及我们想要使用XmlSerializer通过WCF序列化的子类.我们根据文章装饰一个集合(参见响应类):

http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlelementattribute.aspx(请参阅备注部分).

问题是虽然似乎生成了正确的WSDL,但SVCUtil生成一个类文件,其中GetUserResponse类包含名为Items的属性.这与将[XmlElement]应用于数组有关吗?虽然XmlArray元素没有Type属性.

提前致谢.

[Serializable]
[XmlType]
public class UserBase
{
    public int Id {get;set;}
}

[Serializable]
[XmlType]
public class BasicUser : UserBase
{
    public string UserName {get;set;}
}

[Serializable]
[XmlType]
public class SuperUser : UserBase
{
    public string UserName {get;set;}
    public bool SpecialLevel {get;set;}

}

[Serializable]
[XmlType]
public class GetUserResponse
{
    [XmlElement("Users", typeof(User)), XmlElement("SuperUsers", typeof(SuperUser))]
    public List<UserBase> Users {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

c# inheritance xmlserializer

3
推荐指数
1
解决办法
3710
查看次数