小编har*_*ott的帖子

您如何记录您的编码标准?

您发现什么是发布编码标准的最佳方式?为什么?

coding-style

15
推荐指数
5
解决办法
3537
查看次数

WCF:如何获取主机IP或服务器名称

我有一个WCF服务,通过IIS在多个Web服务器上托管.我有一个记录方法,记录对数据库的调用,我想记录正在执行调用的服务器.

有谁知道如何获取WCF调用正在执行的主机服务器名称或IP地址?

wcf

15
推荐指数
2
解决办法
2万
查看次数

将标头cookie字符串映射到CookieCollection,反之亦然

考虑使用此标头的Web响应:

Set-Cookie: sample=testCookie; Domain=.sample.com; Expires=Tue, 25-Jan-2012 00:49:29 GMT; Path=/
Run Code Online (Sandbox Code Playgroud)

此标头将被映射到CookieCollection.NET.而且当我们处理CookieCollection它时它最终会转换成这样的header string.

我正在寻找某种方式纯粹以两种方式进行这种转换.肯定.NET有它的内部库.我相信任何从文本构造对象模型的类,反之亦然,应该支持两种方法(这里CookieCollection):

// Creating cookie collection from header text
CookieCollection.TryParse(cookieHeaderString, out myCookieCollection);
// and getting the final header which would be sent by request
String cookieHeaderString = myCookieCollection.GetCookieHeaderString();
Run Code Online (Sandbox Code Playgroud)

我怎样才能实现这一目标CookieCollection

c# cookies http-headers

14
推荐指数
2
解决办法
2万
查看次数

|| (或)Linq中使用C#的操作员

我正在使用linq过滤选择的MessageItems.我编写的方法接受一堆可能为null的参数.如果它们为null,则应忽略该文件的条件.如果它不为null,则使用它来过滤结果.

这是我的理解,当做一个|| operation是C#,如果第一个表达式为true,则不应计算第二个表达式.

例如

if(ExpressionOne() || ExpressionTwo())
{
     // only ExpressionOne was evaluated because it was true
}
Run Code Online (Sandbox Code Playgroud)

现在,在linq,我正在尝试这个:

var messages = (from msg in dc.MessageItems
where  String.IsNullOrEmpty(fromname) || (!String.IsNullOrEmpty(fromname) && msg.FromName.ToLower().Contains(fromname.ToLower()))
select msg);
Run Code Online (Sandbox Code Playgroud)

我原本以为这会是合理的,因为它String.IsNullOrEmpty(fromname)等于是真的和||的第二部分 不会跑.

然而它确实运行了,第二部分

msg.FromName.ToLower().Contains(fromname.ToLower()))
Run Code Online (Sandbox Code Playgroud)

抛出一个空引用异常(因为fromname为null)!! - 我得到一个经典的"对象引用没有设置为对象的实例"异常.

有帮助吗?

.net c# linq null linq-to-sql

12
推荐指数
2
解决办法
3万
查看次数

Ninject ToFactory在Resharper单元测试中工作,但不适用于NCrunch

我正在使用Ninject.Extensions.Factory和Ninject 3创建一个工厂,它IFoo根据提供给工厂的字符串创建不同类型的工厂.我有一个通过单元测试,但奇怪的是,只有在Resharper测试运行器.在NCrunch测试运行器中,它失败了.这是一个NCrunch配置问题,还是我需要更改代码?

界面:

public interface IFooFactory
{
    IFoo CreateFoo(string name);
}
Run Code Online (Sandbox Code Playgroud)

Ninject绑定:

kernel.Bind<IFooFactory>().ToFactory(() => new UseFirstParameterAsNameInstanceProvider());
kernel.Bind<IFoo>().To<BarFoo>().Named("Bar");
Run Code Online (Sandbox Code Playgroud)

考试:

[Test]
public void CanCreateFooTest()
{
    var factory = (IFooFactory) Kernel.GetService(typeof(IFooFactory));
    var bar = factory.CreateFoo("Bar");
    Assert.AreEqual(typeof(BarFoo), bar.GetType());
}
Run Code Online (Sandbox Code Playgroud)

和NCrunch异常:

System.Reflection.TargetInvocationException : Exception has been thrown by the target of an invocation.
  ----> Ninject.ActivationException : Error activating IInterceptor using conditional implicit self-binding of IInterceptor
Provider returned null.
Activation path:
  2) Injection of dependency IInterceptor into parameter  of constructor of type IFooFactoryProxy
  1) …
Run Code Online (Sandbox Code Playgroud)

unit-testing ninject visual-studio-2010 ncrunch ninject-3

11
推荐指数
3
解决办法
1493
查看次数

asp.net mvc - 在Razor中提供备用行样式的最简单方法

给出以下Razor代码:

<tbody>
    @foreach (Profession profession in Model)
    {
        <tr>
            <td>@profession.Name</td>
            <td>@profession.PluralName</td>
            <td>@Html.ActionLink("Edit", "AddOrEdit", new { Id = profession.ProfessionID })</td>
        </tr>
    }
</tbody>
Run Code Online (Sandbox Code Playgroud)

提供某种替代行样式的最简单方法是什么?(即奇数行和偶数行的不同样式.)

我似乎无法添加任意C#来声明一个bool变量,该变量在foreach循环的每次迭代中被翻转以便tr为例如设置类名.

asp.net asp.net-mvc razor

10
推荐指数
2
解决办法
2万
查看次数

HttpClient.PostAsJsonAsync崩溃而不抛出异常

我有一个带有WebAPI控制器的ASP.NET MVC应用程序,以及一个使用这些控制器的控制台应用程序.控制台应用程序从计划任务运行,从远程源获取数据,解析它,并在退出之前将其发布到MVC应用程序.

这适用于几个控制器,但其中一个调用会使控制台应用程序崩溃而不会抛出异常.用于所有控制器的调用者代码:

    public async Task<string> Post<T>(string urlRoot, string url, T data)
    {
        var result = "";
        try
        {
            var httpClient = GetHttpClient(urlRoot);
            var response = await httpClient.PostAsJsonAsync(url, data); // Exits here
            if (response.IsSuccessStatusCode)
            {
                result = await response.Content.ReadAsAsync<string>();
            }
        }
        catch (Exception e)
        {
            Debug.WriteLine(e.ToString());
        }
        return result;
    }
Run Code Online (Sandbox Code Playgroud)

程序退出时会退出await httpClient.PostAsJsonAsync(url, data).使用断点,既没有到达catch块也没有到达if语句.然而,正在进行调用,因为正在使用正确的数据调用Web API控制器.

程序共享T通过API调用传递的相同代码.

从输出窗口:

程序'[9640] ProgramName.vshost.exe:Managed(v4.0.30319)'已退出,代码为0(0x0).

我想知道发布数据的大小是否有问题,但我没有找到任何说明大小限制的文档.

所以我的问题是:

  1. 什么可能导致控制台应用程序提前退出?
  2. 如何检测到这一点并阻止程序退出?

c# asp.net-web-api

9
推荐指数
1
解决办法
4926
查看次数

在AngularJS中链接未知数量的承诺

好吧,假设我有一系列n个 XHR请求:

var promises = [];
var AllResults = [];
$scope.requests = [
    {
        "uri":"http://foo/bar/action1",
        "name":"Action1"
    },{
        "uri":"http://bar/foo/action2",
        "name":"Action2"
    },{...},{...},{...}
];
var ParseMyResultsArray = function(){
    console.log(AllResults);
    //...
};

angular.forEach($scope.requests, function(request){
    var promise = $http.get(request.uri);
    promises.push(promise);
});

angular.forEach(promises, function(promise){
    promise.then(function(results){
        AllResults.push(results);
    });
});

//Then, when all promise are resolved...
ParseMyResultsArray();
Run Code Online (Sandbox Code Playgroud)

ParseMyResultsArray()如果在不知道requests阵列大小的情况下解决所有承诺,我怎么能确定打电话?

谢谢你的帮助!

promise angularjs

8
推荐指数
2
解决办法
6874
查看次数

使用ASP.NET成员资格提供程序数据库和您自己的数据库

我们正在开发一个ASP.NET MVC应用程序,它当前使用它自己ApplicationData的域模型数据库,另一个Membership用于用户管理/成员资格提供程序.

我们data-annotations在控制器中使用访问限制.

[Authorize(Roles = "administrators, managers")]
Run Code Online (Sandbox Code Playgroud)

这对于简单的用例非常有用.


在我们扩展应用程序时,我们的客户希望限制specific users访问我们ApplicationData数据库的特定区域.

我们的每个产品都包含一个外键,指的是产品组装的区域.

用户故事将是:

  • NewYorkManagers角色的用户应该只能编辑/查看在纽约组装的产品.

我们创建了一个UserRightsRegions包含UserId和的占位符表RegionId.

我怎样才能链接ApplicationDataMembership以数据库正常工作/有cross-database-key-references?(这样的事情甚至可能吗?)

所有帮助都非常感谢!

c# sql-server asp.net-mvc asp.net-membership c#-3.0

7
推荐指数
1
解决办法
2130
查看次数

有没有办法获得Signalr集线器组中的连接数?

这是我的问题,我想跟踪用户是在线还是离线,并通知其他客户.我正在使用集线器并实现了IConnected和IDisconnect接口.

我的想法是当集线器检测到连接或断开连接时向所有客户端发送通知.默认情况下,当用户刷新页面时,他将获得新的连接ID,并且最终先前的连接将调用disconnect以通知其他客户端用户即使他实际上在线也处于脱机状态.

我试图使用我自己的ConnectionIdFactory返回用户名的连接ID,但是在某些时候打开了多个标签,它会检测到用户连接断开连接,之后客户端集线器将尝试无限循环地连接到集线器,浪费内存和cpu使浏览器差不多无法使用.我需要快速修复它,所以我删除了我的工厂,现在我使用用户名添加每个新连接到组,所以我可以轻松地通知所有连接上的单个用户,但是我有检测用户是在线还是离线的问题,因为我不知道用户有多少活动连接.

所以我想知道有没有办法在一个组中获得连接数?或者,如果有人更好地了解如何跟踪用户何时下线?

我正在使用Signalr 0.4

signalr

7
推荐指数
1
解决办法
7133
查看次数