我有一个客户端 - 服务器应用程序,它使用WCF进行通信,并使用NetDataContractSerializer序列化对象图.
由于在服务器和客户端之间传输了大量数据,我尝试通过微调数据成员的大小来减小其大小(例如,将int更改为short,将long更改为int等).
完成调整后,我发现传输的数据量没有变化!
问题是,NetDataContractSerializer将对象图序列化为XML,因此无论数据成员的大小如何,唯一重要的是其值的大小.例如,Int16数据成员的值10023将序列化为字符串"10023"(0x3130303233),而不是仅仅10023(0x2727).
我记得在Remoting中我可以使用BinaryFormatter根据数据成员的类型序列化值,但我不知道是否可以将它与WCF一起使用.
有人有解决方案吗?
我需要获得元素的级联样式值(不是计算的),或者确定是否计算了实际值.
例如,如果我有一个带css规则的元素width: 100%,我想获取值100%而不是实际的像素值,或者只是想知道实际值是计算出来的.
我知道我可以使用它elem.currentStyle,而且我还在Chrome中找到了一种方法来使用它document.defaultView.getMatchedCSSRules().
有没有人知道在其他浏览器中获取它的方法?
假设我的应用程序有一个访问令牌给一些Facebook用户.将JS代码中的访问令牌暴露给访问我网站的其他用户是否存在安全风险?如果是这样,他们可以用它做什么?
我将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,并且我不知道如何重新打开它以进行第二次调用.有没有办法重新打开它?或者我应该创建一个新的并替换实例(它似乎不是一种优雅的方式)?
我已经下载了WPFToolkit,我正在使用此包中提供的DataGrid.当删除行时,我试图动画一行消失,但我不知道该怎么做.有谁知道怎么做?
我想获得一个对象的嵌套属性的值(类似于Person.FullName.FirstName).我在.Net中看到了一个名为PropertyPath的类,WPF在Binding中使用了类.有没有办法重用WPF的机制,或者我应该自己编写一个机制.
我尝试从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"属性.有谁知道如何解决这个问题?
谢谢
我想将我的静态网站存储在azure blobs中.
我的问题是,我应该为图像和javascript文件使用什么类型的blob(Page-Blob或Block-Blob)?
有人可以提供一个如何使用Google.Apis.Storage.v1将文件上传到c#中的google云存储的示例吗?
我使用SQL Server 2008,并且我有一个表格,其中包含varchar(X)类型的列,我希望它具有唯一值.
实现这一目标的最佳方法是什么?我应该使用唯一约束并捕获异常,还是应该在插入新值之前进行预先检查?
一个问题,许多用户使用该应用程序,因此我猜如果两个用户将插入相同的值,预检查可能会导致竞争条件.
谢谢
wcf ×3
wpf ×3
c# ×2
.net ×1
access-token ×1
animation ×1
azure ×1
css ×1
datagrid ×1
facebook ×1
javascript ×1
security ×1
sql ×1
sql-server ×1
startup ×1
svcutil.exe ×1
wpftoolkit ×1