小编Rip*_*ash的帖子

如何在XSLT中处理重复导入?

只要在XSL转换中多次导入同一文件,就会抛出警告.通常是一些东西Stylesheet module file:/Users/blake/Documents/workspace/course-connect-parent/course-connect-publisher/src/main/xsl/config.xsl is included or imported more than once. This is permitted, but may lead to errors or unexpected behavior

但是,似乎如果需要通过多个'children'xsl调用(例如,包含重要函数的util.xsl)导入相同的xsl,则这种情况是不可避免的.

有没有办法避免这些警告,或更好的办法?

这是问题设置:

FILE_A.xsl

imports FILE_B.xsl and FILE_C.xsl
uses functions/parameters from util.xsl, which it gets from FILE_B.xsl & FILEC.xsl
calls templates in FILE_B.xsl
calls templates in FILE_C.xsl
Run Code Online (Sandbox Code Playgroud)

FILE_B.xsl

imports util.xsl
contains templates used by FILE_A.xsl
uses functions/parameters from util.xsl
Run Code Online (Sandbox Code Playgroud)

FILE_C.xsl

imports util.xsl
contains templates used by FILE_A.xsl
uses functions/parameters from util.xsl
Run Code Online (Sandbox Code Playgroud)

util.xsl

Contains functions/variables used by FILE_A, FILE_B, …
Run Code Online (Sandbox Code Playgroud)

xslt xslt-2.0 xslt-1.0

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

如何创建可以从多个数据源中提取数据的IQueryable Web API?

我正在试图弄清楚如何编写一个可以从多个源(在本例中为Azure Table,Azure Blob和ElasticSearch)中提取和组合数据的IQueryable数据源.我真的很难弄清楚从哪里开始这个.

我们的想法是,Web服务(在本例中为Asp.Net Web Api)可以呈现可查询的OData接口,但是当它被查询时,它会根据请求从多个源中提取数据.因此,大型查询可能会触及索引服务(ElasticSearch),该服务不一定具有完整对象可用,但是获取单个对象的调用将直接转到Azure表.但从服务用户的角度来看,它始终只是访问相同的数据源.

虽然我想只使用索引作为我们的搜索服务而将表作为我们的备份,但我有一个设计要求,它必须从多个来源提取数据,这使整个事情变得非常复杂.

我想知道是否有人对此有任何指导或可以指出我正确的技术.我看到的一些重大问题是:

  • 后端对象不一定与被查询的前端对象相同.多个后端对象可以组合成单个前端对象,或者它可以具有计算值.因此必须翻译或映射LINQ查询
  • 根据查询参数更改数据源

以下是我正在使用的技术的简要概述:

  • 作为Azure云服务运行的ASP.Net Web API 2 Web服务
  • 在SUSE VM上运行的ElasticSearch(在Azure上)
  • Azure表
  • Azure Blob

c# linq iqueryable azure elasticsearch

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

OData 是公开非 CRUD API 的好方法吗?

我正在从事一个项目,这是我们公司首次涉足领域驱动开发。

我们的 Web API 最初只是提供 CRUD 操作,并且项目公开了 OData 控制器,但我不确定这是否仍然是一个好主意。

OData 是公开非 CRUD API 的好方法吗?

更多信息:最初我们的 web api 基本上暴露了 CRUD 函数。要创建一个新用户,您只需创建一个并将其发布到服务。例如,要更改地址,您将获得用户实体的副本,进行更改,然后执行更新操作。基本的 OData 东西。

除了提供查询支持之外,OData 还以一种易于使用的方式公开服务,因此可以将其作为服务引用添加到其他项目中并通过代理进行访问。

自从我们转向 DDD 方法后,情况发生了重大变化。我们的 Web API 现在只是通往许多独立子域服务的网关。我们不再提供 CRUD 操作或对实体的直接访问,而是通过服务调用来操作实体。消费者必须生成一个 CreateUserBindingModel 并将其发送到 User/Create 服务,然后让服务生成实体,而不是创建一个 User 实体,通过 Put 请求将其发送到 User 服务。更改地址是通过 ChangeAddress(ChangeAddressBindingModel 模型) 方法完成的,而不仅仅是更新整个对象。查询更有针对性,而且很少返回整个域对象。

当我们不再提供 CRUD 操作时,继续使用 OData 作为我们 Web API 的基础是一个坏主意吗?是否有另一种方法可以像使用 OData 一样公开我们服务的详细信息?我知道 WCF 服务提供了类似的功能,但我的印象是它比 OData 更依赖于 CRUD。

c# domain-driven-design web-services odata asp.net-web-api

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

使用具有通用签名的 AutoMoq 方法

我目前正在使用一个测试框架,该框架是我使用 xUnit、AutoMoq、AutoFixture 和 AutoFixture.XUnit2 组合而成的。我遇到了使用通用签名的模拟方法的问题。

AutoFixture 似乎可以很好地处理通用项目。如果我要求一个CustomeObject<Task<List<Task<string>>>>或其他一些荒谬的嵌套泛型类型,它似乎会按预期生成它们,一直到最后一个节点。

但是,如果我有这样的界面:

public interface ITestInterface{
    T Get<T>();
}
Run Code Online (Sandbox Code Playgroud)

然后尝试从我从 AutoMoq 获得的模拟中调用该方法,它只返回 null。因此,例如:

[Theory]
[MyAutoDaqaAttribute]
public async Task ATest(
    Mock<ITestInterface> service
) {
    var result = service.Object.Get<string>();
}
Run Code Online (Sandbox Code Playgroud)

在此代码中,结果将为空。这对我来说似乎很奇怪。难道它不应该转到 autofixture 并尝试创建 T 类型的值(即新字符串)吗?看起来 Autofixture 已经表明它可以很好地处理泛型。

或者您是否总是需要手动设置任何签名中具有泛型的模拟方法?

autofixture automoq

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

AutoFixture:你能解冻数据类型吗?

冻结后是否可以解冻对象类型?

所以如果我有一个使用 DateTime 的对象约会,有没有办法做这样的事情?

var time = fixture.Freeze<DateTime>();
IEnumerable<ClientAppointment> appointments = fixture.CreateMany < ClientAppointment>();
fixture.Unfreeze<ClientAppointment>();
Run Code Online (Sandbox Code Playgroud)

这样我就可以生成注入了不同 DateTime 的新对象?

autofixture

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

如何阻止html textarea将html实体解释为其字符

我有一个html textarea,用于显示数据库中的字符串.可以编辑textarea,并将任何更改保存到数据库中.

问题是当它收到实体和注册; 在字符串中,它将它们转换为字符,然后在保存文本时,字符会覆盖实体.例如:数据库将返回字符串Microsoft® 它将显示为Microsoft®,然后以这种方式保存.有没有办法强制textareas不解释实体?

跟进:我现在的想法是,从数据库中获取字符串将所有'&'替换为'&'.但我仍然想知道是否有办法阻止textareas转换他们收到的字符串.

html xhtml jsp textarea

0
推荐指数
1
解决办法
4228
查看次数