小编And*_*ndy的帖子

以二进制方式序列化WCF消息,而不是SOAP消息

我有一个客户端 - 服务器应用程序,它使用WCF进行通信,并使用NetDataContractSerializer序列化对象图.

由于在服务器和客户端之间传输了大量数据,我尝试通过微调数据成员的大小来减小其大小(例如,将int更改为short,将long更改为int等).

完成调整后,我发现传输的数据量没有变化!
问题是,NetDataContractSerializer将对象图序列化为XML,因此无论数据成员的大小如何,唯一重要的是其值的大小.例如,Int16数据成员的值10023将序列化为字符串"10023"(0x3130303233),而不是仅仅10023(0x2727).

我记得在Remoting中我可以使用BinaryFormatter根据数据成员的类型序列化值,但我不知道是否可以将它与WCF一起使用.

有人有解决方案吗?

wcf serialization

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

是什么让WPF应用程序启动缓慢?

我注意到WPF应用程序启动有时很慢.有人知道原因是元素初始化还是DLL加载或其他什么?

wpf startup

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

如何获取级联样式值或确定是否计算实际值?

我需要获得元素的级联样式值(不是计算的),或者确定是否计算了实际值.

例如,如果我有一个带css规则的元素width: 100%,我想获取值100%而不是实际的像素值,或者只是想知道实际值是计算出来的.

我知道我可以使用它elem.currentStyle,而且我还在Chrome中找到了一种方法来使用它document.defaultView.getMatchedCSSRules().

有没有人知道在其他浏览器中获取它的方法?

javascript css cross-browser

11
推荐指数
1
解决办法
708
查看次数

在javascript中暴露facebook用户访问令牌有哪些安全风险?

假设我的应用程序有一个访问令牌给一些Facebook用户.将JS代码中的访问令牌暴露给访问我网站的其他用户是否存在安全风险?如果是这样,他们可以用它做什么?

security facebook access-token

11
推荐指数
2
解决办法
5151
查看次数

在出现故障后重新使用WCF中的客户端类

我将WCF用于客户端服务器系统.当我在服务器上向IService添加服务引用时,会生成代理类ServiceClient.我的代码如下所示:

ServiceClient client = new ServiceClient();
try
{
    client.Operation1();
}
catch(Exception ex)
{
    // Handle Exception
}
try
{
    client.Operation2();
}
catch(Exception ex)
{
    // Handle Exception
}
Run Code Online (Sandbox Code Playgroud)

问题是如果第一次调用中存在通信异常,则客户端的状态将更改为Faulted,并且我不知道如何重新打开它以进行第二次调用.有没有办法重新打开它?或者我应该创建一个新的并替换实例(它似乎不是一种优雅的方式)?

wcf

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

在WPFToolKit DataGrid中动画行消失

我已经下载了WPFToolkit,我正在使用此包中提供的DataGrid.当删除行时,我试图动画一行消失,但我不知道该怎么做.有谁知道怎么做?

wpf animation datagrid wpftoolkit

7
推荐指数
1
解决办法
1283
查看次数

有没有办法使用PropertyPath类获取对象的属性值?

我想获得一个对象的嵌套属性的值(类似于Person.FullName.FirstName).我在.Net中看到了一个名为PropertyPath的类,WPF在Binding中使用了类.有没有办法重用WPF的机制,或者我应该自己编写一个机制.

.net c# wpf

7
推荐指数
1
解决办法
5052
查看次数

svcutil从生成的接口代理中省略ServiceKnownType属性

我尝试从MSDN实现ServiceKnownType示例时遇到问题.在示例中,它们提供以下类:

[DataContract()]
public class Widget
{
    [DataMember]
    public string Id;
    [DataMember]
    public string Catalog;
}

[DataContract()]
public class Machine : Widget
{
    [DataMember]
    public string Maker;
}
Run Code Online (Sandbox Code Playgroud)

以下界面:

[ServiceKnownType(typeof(Widget))]
[ServiceKnownType(typeof(Machine))]
[ServiceContract()]
public interface ICatalog
{
    [OperationContract]
    Hashtable GetItems();
}
Run Code Online (Sandbox Code Playgroud)

问题是当生成代理类时(使用"添加服务引用"/ svcutil.exe),ICatalog代理接口中省略了"ServiceKnownType"属性,导致异常"格式化程序在尝试时抛出异常反序列化消息:...将与'Widget'对应的类型添加到已知类型列表中"为了解决此问题,我必须手动将服务已知属性添加到生成的代理接口,这是一个非常糟糕的解决方案,因为代码重新生成当我更新参考.在所有这些情况下有趣的是,如果GetItems操作将返回对象而不是Hashtable,或者将对象作为参数,则问题将得到解决,即

[OperationContract]
object GetItems();
Run Code Online (Sandbox Code Playgroud)

要么

[OperationContract]
Hashtable GetItems(object obj);
Run Code Online (Sandbox Code Playgroud)

导致ICatalog代理接口上存在"ServiceKnownType"属性.有谁知道如何解决这个问题?

谢谢

wcf svcutil.exe

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

我应该将哪种类型的azure blob用于静态内容

我想将我的静态网站存储在azure blobs中.
我的问题是,我应该为图像和javascript文件使用什么类型的blob(Page-Blob或Block-Blob)?

azure azure-storage azure-storage-blobs

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

在c#中将对象上传到谷歌云存储桶

有人可以提供一个如何使用Google.Apis.Storage.v1将文件上传到c#中的google云存储的示例吗?

c# google-cloud-storage

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

唯一约束与预检查

我使用SQL Server 2008,并且我有一个表格,其中包含varchar(X)类型的列,我希望它具有唯一值.

实现这一目标的最佳方法是什么?我应该使用唯一约束并捕获异常,还是应该在插入新值之前进行预先检查?

一个问题,许多用户使用该应用程序,因此我猜如果两个用户将插入相同的值,预检查可能会导致竞争条件.

谢谢

sql sql-server database-design

2
推荐指数
1
解决办法
729
查看次数