小编roy*_*oyu的帖子

序列化DataMember(名称)覆盖问题

我正在使用DataContractJsonSerializer并且DataMember名称存在问题.

我创建了一个基类和几个派生类.我需要派生类,因为我有不同的json字符串.我想反序列化json字符串,因此需要不同的数据名称名称.我尝试更改DataMember名称,如下例所示:

基类:

[DataContract]
public abstract class BaseClass
{


    [DataMember]
    public virtual string FirstMethod { get; protected set; }

}
Run Code Online (Sandbox Code Playgroud)

派生类:

[DataContract]
[KnownType(typeof(BaseAccess))]
public class DerivedClass
{


    [DataMember(Name="first_method")]
    public virtual string FirstMethod { get; protected set; }

}
Run Code Online (Sandbox Code Playgroud)

问题是当我使用派生类时,序列化似乎忽略了给定的DataMember名称.因此,当我使用DerivedClass类型反序列化时,序列化似乎是使用名称"FirstMethod"(基类)而不是"first_method"(派生类).是否可以使用派生类的DataMember名称(在我的情况下,它对于几个派生类是不同的).

另一个问题.我发现在基类上添加了KnownType并在派生类上添加的示例.对于我来说,在派生类上执行此操作似乎是逻辑(特别是对于继承问题).什么是正确的?

c# wcf serialization overriding datamember

12
推荐指数
1
解决办法
6339
查看次数

无法启动程序'http://localhost/Default.aspx'.VS2010

我不能再从Visual Studio 2010启动我的网站了.

有几天我无法使用F5在Web浏览器中启动我的项目.当我通过键入相同的URL'http ://localhost/Default.aspx ' 直接打开我的Web应用程序时,everthing工作正常.

当我运行项目(F5)时,一个新的webbrowser启动,但几秒钟后它就卡住了,Visual Studio会给出一个错误对话框:


Microsoft Visual Studio

无法启动程序' http://localhost/Default.aspx '.


当我在发布模式下运行项目时,它会产生一个额外的错误:


Microsoft Visual Studio

以下模块是在启用优化或没有调试信息的情况下构建的:

C:\ WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\6552bec6\694bce32\assembly\dl3\8c9bd8d8\fb1d75cb_af26cc01\[name] .Presentation.DLL

要调试此模块,请将其项目构建配置更改为调试模式.要禁止显示此消息,请禁用"如果启动时没有用户代码,则调用警告"选项.


我已经修复,删除并重新安装了Visual Studio 2010,我尝试使用不同的浏览器(包括Chrome和Firefox),使用不同的aspnet_regiis.exe选项等.

什么都没有帮助,是的,现在我被困在头上拉头发......

任何人都知道如何解决这个问题?

debugging release visual-studio-2010

9
推荐指数
1
解决办法
4万
查看次数

formatter deserialize给出:在解析完成之前遇到的Stream of Stream

我试图反序列化我保存到文件的对象(使用二进制格式化程序).无论我尝试什么,我都会得到异常:解析完成之前遇到的End of Stream

我有以下几行代码:

public static T DeserializeFromBinaryFile<T>(string fileName)
{
    T instance = default(T);
    FileStream fs = new FileStream(fileName, FileMode.Open);
    try
    {
        BinaryFormatter formatter = new BinaryFormatter();
        instance = (T)formatter.Deserialize(fs);
    }
    catch{}
    finally
    {
        fs.Close();
    }

    return instance;
}
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

public static T DeserializeFromBinaryFile<T>(string fileName)
{
    T instance = default(T);
    FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
    MemoryStream ms = new MemoryStream();
    try
    {
        byte[] bytes = new byte[fs.Length];
        fs.Read(bytes, 0, (int)fs.Length);
        ms.Write(bytes, 0, (int)fs.Length);
        ms.Position = 0;
        ms.Seek(0, SeekOrigin.Begin); …
Run Code Online (Sandbox Code Playgroud)

c# binary exception formatter

6
推荐指数
1
解决办法
3833
查看次数

Javascript加密库(客户端加密|服务器端解密)

我正在寻找一个javascript库,我可以加密客户端,并使用C#解密服务器端.

这样的图书馆存在吗?有没有例子如何在C#服务器端加密客户端和如何解密?


编辑 - 额外的解释

在具有低阈值的站点上,要求是http.一些数据(litte)将被发送到服务器.想法是用户提供一些数据(也是一个密钥 - 不会被发送),数据将被加密并发送到服务器(密钥在服务器端也是已知的).数据不是真正敏感的,偏好不是以纯文本形式发送...

我试过http://code.google.com/p/crypto-js/ AES.但我无法弄清楚这些数据是如何被加密的(客户端,utf 8或......等).如果我加密一些数据客户端(使用相同的iv和私钥等)并在C#中执行相同操作,我会得到不同的字符串.

javascript encryption

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