只要在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) 我正在试图弄清楚如何编写一个可以从多个源(在本例中为Azure Table,Azure Blob和ElasticSearch)中提取和组合数据的IQueryable数据源.我真的很难弄清楚从哪里开始这个.
我们的想法是,Web服务(在本例中为Asp.Net Web Api)可以呈现可查询的OData接口,但是当它被查询时,它会根据请求从多个源中提取数据.因此,大型查询可能会触及索引服务(ElasticSearch),该服务不一定具有完整对象可用,但是获取单个对象的调用将直接转到Azure表.但从服务用户的角度来看,它始终只是访问相同的数据源.
虽然我想只使用索引作为我们的搜索服务而将表作为我们的备份,但我有一个设计要求,它必须从多个来源提取数据,这使整个事情变得非常复杂.
我想知道是否有人对此有任何指导或可以指出我正确的技术.我看到的一些重大问题是:
以下是我正在使用的技术的简要概述:
我正在从事一个项目,这是我们公司首次涉足领域驱动开发。
我们的 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。
我目前正在使用一个测试框架,该框架是我使用 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 已经表明它可以很好地处理泛型。
或者您是否总是需要手动设置任何签名中具有泛型的模拟方法?
冻结后是否可以解冻对象类型?
所以如果我有一个使用 DateTime 的对象约会,有没有办法做这样的事情?
var time = fixture.Freeze<DateTime>();
IEnumerable<ClientAppointment> appointments = fixture.CreateMany < ClientAppointment>();
fixture.Unfreeze<ClientAppointment>();
Run Code Online (Sandbox Code Playgroud)
这样我就可以生成注入了不同 DateTime 的新对象?
我有一个html textarea,用于显示数据库中的字符串.可以编辑textarea,并将任何更改保存到数据库中.
问题是当它收到实体和注册; 在字符串中,它将它们转换为字符,然后在保存文本时,字符会覆盖实体.例如:数据库将返回字符串Microsoft® 它将显示为Microsoft®,然后以这种方式保存.有没有办法强制textareas不解释实体?
跟进:我现在的想法是,从数据库中获取字符串将所有'&'替换为'&'.但我仍然想知道是否有办法阻止textareas转换他们收到的字符串.
autofixture ×2
c# ×2
automoq ×1
azure ×1
html ×1
iqueryable ×1
jsp ×1
linq ×1
odata ×1
textarea ×1
web-services ×1
xhtml ×1
xslt ×1
xslt-1.0 ×1
xslt-2.0 ×1