小编Tha*_*had的帖子

接口上的属性

我有一个接口,定义了一些带属性的方法.需要从调用方法访问这些属性,但我所拥有的方法不会从接口中提取属性.我错过了什么?

public class SomeClass: ISomeInterface
{
    MyAttribute GetAttribute()
    {
        StackTrace stackTrace = new StackTrace();
        StackFrame stackFrame = stackTrace.GetFrame(1);
        MethodBase methodBase = stackFrame.GetMethod();
        object[] attributes = methodBase.GetCustomAttributes(typeof(MyAttribute), true);
        if (attributes.Count() == 0)
            throw new Exception("could not find MyAttribute defined for " + methodBase.Name);
        return attributes[0] as MyAttribute;
    }

    void DoSomething()
    {
        MyAttribute ma = GetAttribute();
        string s = ma.SomeProperty;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# reflection attributes interface

18
推荐指数
1
解决办法
1万
查看次数

调整项目从列表中选择的机会

我有一个项目清单.当我创建列表时,每个项目都有相同的机会被选中.但是当一个项目被选中时,它的机会会下降,而其他机会会上升.如果在此过程中添加了一个新项目,那么它应该被选中的机会最大,并且在选中它时机会会下降.我正在寻找一个可以实现这个C#的好算法.

Generalizaed想法:我有5个项目,随着时间的推移,所有5个项目将被选中20%的时间.我试图让选择尽可能接近20%,减少对外界的影响.如果存在,将更多/更少地选择它以使其恢复正常.

c# math probability weighted-average

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

MVC4 RC WebApi参数绑定

我从MVC4 beta升级到RC和最新的autofac.以下操作正确绑定,但现在两个参数都为null.我看到他们改变了关于格式化程序的事情,但我不确定是什么原因引起了我的问题

[HttpPost]    
RedirectModel MyAction(string value1, string value1)
Run Code Online (Sandbox Code Playgroud)

请求

Method: POST
Accept: application/json
URL: api/controller/myaction
BODY: {"value1":"1000", "value2":"foo"}
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc autofac asp.net-web-api

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

MVC自定义路由和ActionLinks

我们正在使用由多个客户共享的asp.net mvc应用程序.我们需要url包含客户端url友好名称.例如:

domain.com/clientName/controller/action/id

以下内容似乎在路由时起作用,但是对于操作链接助手没有正确生成"clientName".

_routes.MapRoute("DefaultRoute",
                "{clientName}/{controller}/{action}/{id}",
                new { controller = "Home", action = "Index", id = string.Empty },
                new { clientName = @"[\w-]+" });
Run Code Online (Sandbox Code Playgroud)

我们希望继续使用Html.ActionLink Helper方法,但它不会在生成的链接中包含clientName.我们是否必须在这种情况下编写自己的帮助者,还是有替代方法?

有没有其他人使用这种类型的路由方案构建应用程序?任何建议,将不胜感激!

asp.net-mvc asp.net-mvc-routing

5
推荐指数
3
解决办法
5654
查看次数

fluentnhibernate和nhibernate验证器版本错误

我们有一个使用FluentNibernate映射实体的项目.现在我需要为这些地图添加一些格式验证.对于Nullable,Length等,我们目前正在使用映射.我在项目中添加了NHibernate Validator,但收到了关于需要NHibernate版本2.1.2.4000的编译时错误.所以我升级到那个版本只是为了得到一个运行时错误,说它找不到NHibernate 2.1.0.4000.我可以编写扩展方法来使用FluentNibernate进行验证吗?我是否必须使用相同版本的NHibernate重新编译?首选方法是使用这些的释放.任何其他设备将不胜感激.

nhibernate fluent-nhibernate nhibernate-validator

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

在另一个Build中标记TeamCity中的Build

我们有一个编译和创建工件的Build.然后我们有另一个使用最后一个Compile构建的Build并将它部署到适当的环境.一旦完成,我必须在TC中标记它被推送到环境中的构建.有没有办法可以标记使用Deploy Build部署的Compile Build?

teamcity

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

405使用AttributeRouting.PUTAttribute时除非我还包含HttpPutAttribute

我有一个MVC项目,我试图更新以包括WebApi.为了获得所需的路由,我们使用AttributeRouting.除了返回405的[PUT]之外,所有调用似乎都正确路由.我已经简化了控制器和操作,并且仍然使用[PUT]接收错误,除非我也包含[HttpPut].不确定我错过了什么.

    [RoutePrefix("api/Sites")]
    public class SitesController : BaseApiController
    {
        [POST("")]
        public bool CreateSite(SiteSignupArgs args)
        {
            ...
        }

        [GET("Statuses")]
        public IList<SiteAuditViewModel> GetStatuses()
        {
            ...
        }

        [PUT("Statuses/{siteId}")]
        [HttpPut] // This is required or 405 is returned 
        public HttpResponseMessage UpdateStatus(string siteId, UpdateStatusArgs args)
        {
            ...
        }

        [DELETE("Statuses/{siteId}")]
        public HttpResponseMessage Delete(string siteId)
        {
            return Request.CreateResponse(HttpStatusCode.OK);
        }
}
Run Code Online (Sandbox Code Playgroud)

AttributeRouting.Core 3.5.6版,AttributeRouting.Core.Http,AttributeRouting.Core.Web,AttributeRouting.WebApi

MVC4

未安装WebDAV.

asp.net-web-api attributerouting

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

jquery $ .post在Firefox中不起作用

我乞求使用jquery.我有以下调用适用于IE7但不适用于FF 3.0.4.但是,如果我改变null{}正常工作.null对于这种情况无效,我很幸运它在IE中工作或者这是jquery的错误.

$.post("complexitybar.ashx?a=init&vc=" + validationCode, null, loadInitialValues, "json");
Run Code Online (Sandbox Code Playgroud)

firefox jquery internet-explorer

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

组织标识字段作为复合主键

我们目前有一个系统,每个客户在注册时都会获得自己的数据库.毫不奇怪,这是失控的.

我们正准备将所有这些数据库合并到一个数据库中.为此,我们需要注意该行所属的组织.如何在数据库上处理这个以及下面的方法有哪些优点/缺点(速度,可维护性等)?

选项1:将组织ID分配给所有表并使其成为主键的一部分(使所有键复合).

选项2:将组织ID添加到所有表中,作为具有组织表外键的列.

选项3:其他东西.

我们正在考虑通过这一举措转移到NHibernate,如果这对所做的事情有影响的话.

sql sql-server nhibernate performance database-design

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

RegEx匹配5个字符的序列

我想ac#regex来确定一个字符串是否在定义的序列中包含5个以上的字符.

示例:如果序列是字母表,那么'ghijk'将为true,而'lmn'将为false.

编辑:序列需要按顺序排列.从上面的例子'ghijz'将返回false.

c# regex

2
推荐指数
1
解决办法
1920
查看次数

从SQL生成随机值

看起来SQL Server和大多数其他产品一样,随机函数真的不是随机的.所以我们有这个很好的小函数来生成一个10 char值.有没有更好的方法来完成以下操作.我打赌有.

DECLARE @SaltCount INT;
SELECT @SaltCount = COUNT(*) FROM tmp_NewLogin;
PRINT 'Set Salt values for all records' + CAST(@SaltCount AS VARCHAR(10))
DECLARE @CharPool CHAR(83);
DECLARE @Salt VARCHAR(10);
SET @CharPool = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!"#$%&()*+,-./:;<=>?@';

SET NOCOUNT ON;
updateSaltValue:
    SET @Salt = ''
    SELECT @Salt = @Salt + SUBSTRING(@CharPool, number, 1) FROM
    (
    SELECT TOP 10 number FROM MASTER..[spt_values] WHERE TYPE = 'p' AND Number BETWEEN 1 AND 83
    ORDER BY NEWID()
    ) AS t

    UPDATE TOP(1) [table] SET [Salt] = @Salt …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

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

使用Autofac 2和命名注册构造函数注入

我目前正在尝试在代码中删除一些.Resolve.我一直在移动,直到我遇到一个命名注册,我无法使用该名称解析Autofac.我错过了将命名注册注入构造函数.

注册

builder.RegisterType<CentralDataSessionFactory>().Named<IDataSessionFactory>("central").SingleInstance();
builder.RegisterType<ClientDataSessionFactory>().Named<IDataSessionFactory>("client").SingleInstance();
builder.RegisterType<CentralUnitOfWork>().As<ICentralUnitOfWork>().InstancePerDependency();
builder.RegisterType<ClientUnitOfWork>().As<IClientUnitOfWork>().InstancePerDependency();
Run Code Online (Sandbox Code Playgroud)

现在的课程

public class CentralUnitOfWork : UnitOfWork, ICentralUnitOfWork
{
    protected override ISession CreateSession()
    {
        return IoCHelper.Resolve<IDataSessionFactory>("central").CreateSession();
    }
}
Run Code Online (Sandbox Code Playgroud)

想拥有

public class CentralUnitOfWork : UnitOfWork, ICentralUnitOfWork
{
    private readonly IDataSessionFactory _factory;
    public CentralUnitOfWork(IDataSessionFactory factory)
    {
        _factory = factory;
    }

    protected override ISession CreateSession()
    {
        return _factory.CreateSession();
    }
}
Run Code Online (Sandbox Code Playgroud)

c# autofac

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