小编Jef*_*ell的帖子

如何在ServiceStack.net中使用Funq注册多个IDbConnectionFactory实例

您将如何在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

c# ioc-container inversion-of-control servicestack funq

18
推荐指数
2
解决办法
7697
查看次数

使用JSON.net序列化Dictionary <int,object>?

我正在尝试使用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变量?

我也对序列化字典的其他策略持开放态度.

javascript c# json json.net

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

在Opserver中正确配置仪表板

这个问题与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数据库中,并且一旦指向,就会提供与要监视的服务器有关的信息.

我遇到的问题是我不知道如何在我的环境中设置它.我无法找到要运行的任何数据库设置脚本或描述仪表板设置的文档.

.net c# opserver

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

Team City git push挂起了这个版本

我在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,它就没有任何问题了.

我很乐意提供进一步的细节,如果它会有所帮助.

git teamcity

4
推荐指数
1
解决办法
3135
查看次数

服务堆栈FOSS异常

最近,我开始开发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项目)如何起作用?我需要购买许可证吗?如果是这样,这对源代码的共享有何影响?其他贡献者可以使用它吗?

servicestack

4
推荐指数
1
解决办法
600
查看次数

使用LINQ,在集合中的字典中查找项属性的最小值

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"的集合中都为空.

我似乎无法绕过这一个.

任何指导将不胜感激.

c# linq linq-to-objects

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

使用.NET客户端进行RavenDB并发更新

我想知道使用.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

c# ravendb

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