您将如何在Funq中注册不同的IDbConnectionFactory实例,然后直接在您的服务中访问它们?命名实例会以某种方式在这里发挥作用吗?
这是跨服务使用不同数据库时最好的方法吗?
谢谢!
编辑:
一个例子 ;).我可能会离开这里,因为我对IoC很新,但是比如说我有2个独立的数据库连接,我想注入.在ServiceStack中,这是在Global.asax中完成的.
container.Register<IDbConnectionFactory>(c =>
new OrmLiteConnectionFactory(@"Connection String 1", SqlServerOrmLiteDialectProvider.Instance));
container.Register<IDbConnectionFactory>(c =>
new OrmLiteConnectionFactory(@"Connection String 2", SqlServerOrmLiteDialectProvider.Instance));
Run Code Online (Sandbox Code Playgroud)
这两个似乎都注入了谦逊的海鲂.
然后通过以下方式在服务端自动访问它们:
public IDbConnectionFactory DbFactory { get; set; }
Run Code Online (Sandbox Code Playgroud)
在这种情况下,它似乎给了我第一个注册.如何访问服务端的特定访问权限?希望这会让它更加清晰.
这是ServiceStack.Examples的完整示例,仅使用1个IDbConnectionFactory: Movies Rest
我正在尝试使用JSON.net来序列化字典.
运用
JsonConvert.SerializeObject(theDict);
Run Code Online (Sandbox Code Playgroud)
这是我的结果
{
"1": {
"Blah1": false,
"Blah2": false,
"Blah3": "None",
"Blah4": false
},
"2": {
"Blah1": false,
"Blah2": false,
"Blah3": "None",
"Blah4": false
},
"3": {
"Blah1": false,
"Blah2": false,
"Blah3": "None",
"Blah4": false
},
...
...
...
}
Run Code Online (Sandbox Code Playgroud)
有没有办法序列化这个字典,以便将键呈现为有效的javascript变量?
我也对序列化字典的其他策略持开放态度.
这个问题与Stack Exchange的Opserver监控套件有关:https://github.com/opserver/Opserver
Opserver中的大多数配置文件都是直截了当的.但是,我无法确定如何配置的一个部分是仪表板.
以下是DashboardSetting.json.example文件的片段:
{
...
"providers": [
{
"name": "Orion",
"type": "Orion",
"host": "orion.ds.stackexchange.com",
"connectionString": "Data Source=ny-utilsql01;Initial Catalog=SolarWindsOrion;Integrated Security=SSPI;Timeout=10"
}
]
}
Run Code Online (Sandbox Code Playgroud)
从我可以收集的内容来看,这个"Orion"提供程序类型具有一个支持数据结构,该数据结构存在于SQL数据库中,并且一旦指向,就会提供与要监视的服务器有关的信息.
我遇到的问题是我不知道如何在我的环境中设置它.我无法找到要运行的任何数据库设置脚本或描述仪表板设置的文档.
我在Team City 8.0.3(build 27540)上遇到了一个问题,该问题挂在辅助构建步骤上,该步骤将更改推送到远程存储库.我无法找到任何可以让我深入了解错误的信息.
使用默认私钥通过SSH设置VCS,并在代理上自动设置结帐模式.
通过结帐规则将源检入"repositoryPath".
构建步骤从"repositoryPath"的工作目录运行git命令.
以下是运行提交的第二步中的构建日志:
Step 2/2: Commit dlls (Command Line) (running for 1m:09s)
[16:46:51][Step 2/2] Starting: C:\TeamCity\buildAgent\temp\agentTmp\custom_script5045114249582743499.cmd
[16:46:51][Step 2/2] in directory: C:\TeamCity\buildAgent\work\8df15579b05cdb68\repositoryPath
[16:46:51][Step 2/2] [master 9fa24ba] Teamcity update
[16:46:51][Step 2/2] 1 file changed, 0 insertions(+), 0 deletions(-)
*** HANGS HERE ***
Run Code Online (Sandbox Code Playgroud)
这是git push命令行步骤:
"%env.TEAMCITY_GIT_PATH%" add .
"%env.TEAMCITY_GIT_PATH%" commit -m "Teamcity update"
"%env.TEAMCITY_GIT_PATH%" push
Run Code Online (Sandbox Code Playgroud)
如果我进入Team City工作目录,我会注意到提交已经执行,但尚未推送.如果我尝试一下git push,它就没有任何问题了.
我很乐意提供进一步的细节,如果它会有所帮助.
最近,我开始开发Service Stack开源项目。昨天我通过了10次免费操作的限制:
The free-quota limit on '10 ServiceStack Operations' has been reached.
Please see https://servicestack.net to upgrade to a commercial license
Run Code Online (Sandbox Code Playgroud)
我正在假设开源项目有例外:FOSS Exception
我对本许可证的解释可能不正确。
简单来说,FOSS异常对于要使用ServiceStack v4的开源项目(或其他FOSS项目)如何起作用?我需要购买许可证吗?如果是这样,这对源代码的共享有何影响?其他贡献者可以使用它吗?
public class Item
{
public double findMe{ get; set; }
public int? iMayBeNull { get; set; }
}
public Dictionary<int, ICollection<Item>> TheDictionary{ get; set; }
...
TheDictionary dict = new Dictionary<int, ICollection<Item>>();
Run Code Online (Sandbox Code Playgroud)
我试图找到"findMe"的最小值,其中"iMayBeNull" 在所有"dict"的集合中都为空.
我似乎无法绕过这一个.
任何指导将不胜感激.
我想知道使用.net客户端给出以下场景会发生什么.
using (IDocumentSession session = documentStore.OpenSession())
{
thingToUpdate = session.Load<TUpdateThing>(id);
// Modify thingToUpdate here
// ** Someplace else the object is updated and saved. **
session.SaveChanges(); // What happens here?
}
Run Code Online (Sandbox Code Playgroud)
这会根据etag的变化自动抛出错误,还是会关闭并覆盖其他人所做的更改?
我已经在http api上看到了一些关于这个的东西:http: //ravendb.net/docs/http-api/http-api-comcurrency