在我们的生产环境中,我们的WCF服务使用XMLSerializer进行序列化.为此,我们的服务接口具有[XMLSerializerFormat]属性.现在,我们需要更改为DataContractSerializer,但我们必须与现有客户端保持兼容.因此,我们必须使用两个序列化程序公开每个服务.
我们有一个约束:我们不想重新定义每个合同接口两次,我们有50个服务合同接口,我们不希望有
IIncidentServiceXml
IIncidentServiceDCS
IEmployeeServiceXml
IEmployeeServiceDCS
IContractServiceXml
IContractServiceDCS
Run Code Online (Sandbox Code Playgroud)
我们怎么做?
更多信息
这是对我们迄今为止所尝试的内容的描述,但我愿意尝试完全不同的方法:
我们尝试通过自己的ServiceHostFactory类中的代码创建所有端点.基本上我们创建两个端点两次.问题是在运行时,WCF抱怨该服务有两个具有相同联系人名称但具有不同ContractDescription实例的端点.消息说我们应该使用不同的合同名称或重用相同的ContractDescription实例.
其他尝试:
我们还尝试通过为每个ContractDescription实例使用不同的命名空间来实现.这样我们将保持相同的合同接口(IIncidentService),但有两个不同的命名空间:
http://ourcompany/XML/IIncidentService
http://ourcompany/DCS/IIncidentService
Run Code Online (Sandbox Code Playgroud)
有了这个,我们能够得到更远,但服务崩溃与一个奇怪的例外:
An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose value is:
System.InvalidOperationException: An exception was thrown in a call to a WSDL export extension: System.ServiceModel.Description.XmlSerializerOperationBehavior
contract: http://ourcompany.cs/XML:IUserServiceWCF ----> System.NullReferenceException: Object reference not set to an instance of an object.
at System.ServiceModel.Description.XmlSerializerMessageContractExporter.ExportFaults(Object state)
at System.ServiceModel.Description.MessageContractExporter.ExportMessageContract()
at System.ServiceModel.Description.XmlSerializerOperationBehavior.System.ServiceModel.Description.IWsdlExportExtension.ExportContract(WsdlExporter exporter, WsdlContractConversionContext contractContext)
at System.ServiceModel.Description.WsdlExporter.CallExtension(WsdlContractConversionContext contractContext, IWsdlExportExtension extension)
Run Code Online (Sandbox Code Playgroud) 我有一个位于 x:/projects/repo1 的仓库。工作目录已被清空hg update null。我想将某些文件的最新版本从那里提取到本地目录。
我试过这个:
x:\projects\repo1> hg cat -o c:\sql\%s scripts\*.sql -r tip
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
scripts\*.sql: No such file in rev 14f07c26178b
Run Code Online (Sandbox Code Playgroud)
如果工作目录不为空,则相同的命令可以正常工作。是否有充分的理由说明这不起作用?或者你知道另一种将一些文件从那里提取到本地目录的方法吗?
我必须编写一个删除脚本来删除数据库表中的行.但是,该表有很多子表(外键),那些子表也有子表.
还有所有的关系外键,我想(先叶表了依赖图)利用这些信息获取表的列表,我不得不删除,以正确的顺序.
如何以正确的顺序获取给定表的子表列表?
自rev 3456以来,如何获取变更集中受影响的所有文件的列表?
注意:
我试过hg log --rev 3456:tip --template "{files}"\n但有几个问题
鉴于此方法必须进行测试:
// Search the given value using the provided search options
// Return true if the searchValue was found; false otherwise
bool Search(string searchValue, bool useExactSearch, bool useIndexing)
Run Code Online (Sandbox Code Playgroud)
我有6个重要的searchValues(一个带有ponctuation,一个带有重音符号,一个带换行符等),我需要使用useExactSearch和useIndexing的每个可能的组合进行验证.这意味着54个测试用例.
你怎么样的?你真的写了54个单元测试吗?如果是这样,你怎么称呼它们?您是否仅针对最重要的案例编写测试?您是否编写了一个单元测试,它循环遍历一个参数值和预期结果表?如果我进行单个单元测试,则在持续集成报告失败时更难找到哪个案例被破坏.
我正在创建我的实体的文档模型以存储在文档数据库 (RavenDB) 中。我正在建模的领域围绕Incidents. 事件具有来源、优先级、类别、影响级别和许多其他分类属性。在 RDBMS 中,我有一个事件表,其中包含优先级表、类别表、影响表等的外键,但我不知道如何在文档数据库中处理它(这是我的第一个 Doc BD)。
我有两种类型的参考数据:
简单的查找值:Countries, States, Sources, Languages。属性:它们只有一个名称,但这是一个多语言系统,因此每种语言都有名称。支持的操作:创建、删除、重命名、停用和合并。
复杂参考数据:与 Simple Lookups 相同,另外:其中一些有很多字段,并且有自己的业务规则和验证规则。例如,两个Priorities不能具有相同的Rank值。有些具有更复杂的结构,例如Categories由Subcategories.
我应该如何将它们建模为(或作为文档的一部分)?
PS:文档数据库建模指南的链接也将不胜感激
我写了一个只有一条路线的快速应用程序。处理程序将传入请求的正文保存到 couchdb 数据库。
我编写了一个 C# 客户端应用程序,它使用线程异步发送 10000 个小请求。某些请求失败并显示此异常消息“无法建立连接,因为目标计算机主动拒绝”。
我想这是因为节点进程达到了排队连接的最大数量。是对的吗?
这个应用程序是一个概念证明,我的真实应用程序中不会有这么大的负载,但我想测试限制并了解它们是如何工作的。
我有两个问题:
有没有办法控制排队请求的最大数量?我可以将其设置为“无限制”吗?如果不是,最大值是多少?为什么有最大值?
在我的节点应用程序中,有没有办法让我捕获并记录那些丢弃的请求?在生产应用程序中,我想知道我的服务器已达到最大请求数。
更多信息:
鉴于这两个类
class Foo{
f1;
get f2(){
return "a";
}
}
class Bar extends Foo {
b1;
get b2(){
return "a";
}
}
let bar = new Bar();
Run Code Online (Sandbox Code Playgroud)
什么代码会从bar实例中获取此属性列表?['f1', 'f2', 'b1', 'b2']
更新
这应该是@Marc C答案的一部分:
使用装饰器我可以轻松地将不可枚举的属性转换为可枚举的属性:
class Bar extends Foo {
@enumerable()
get b2(){
return "a";
}
}
Run Code Online (Sandbox Code Playgroud)
这是装饰源:
function enumerable() {
return function(target, key, descriptor) {
if (descriptor) {
descriptor.enumerable = true;
}
};
}
Run Code Online (Sandbox Code Playgroud)
使用镀铬金丝雀测试
我可以将日期转换为JSON:
> (new Date()).toJSON()
"2012-05-03T22:27:30.530Z"
Run Code Online (Sandbox Code Playgroud)
我可以将它转换回日期:
> typeof (new Date("2012-05-03T22:27:30.530Z"))
object
Run Code Online (Sandbox Code Playgroud)
为什么我不能使用JSON.parse()将其解析为Date?JSON.parse返回一个字符串,而不是Date:
> JSON.parse('{"DateValue":"2012-05-03T22:27:30.530Z"}').DateValue
"2012-05-03T22:27:30.530Z"
Run Code Online (Sandbox Code Playgroud) 我有一个<table>最后一列包含一些动作<button>的地方.其他列包含文本段落.因为它们包含文本,所以它们的宽度尽可能地扩展,然后文本换行.这对所有列都很好,但最后一列.我不希望动作列中的按钮换行; 我希望他们在一条线上.我该怎么做?
有关问题的演示,请参阅此 jsfiddle.
javascript ×2
mercurial ×2
.net ×1
c# ×1
css ×1
express ×1
html ×1
json ×1
node.js ×1
nosql ×1
ravendb ×1
sql-server ×1
t-sql ×1
unit-testing ×1
wcf ×1