小编Mic*_*iey的帖子

如何使用GitHub Pull Requests做修补程序

警告:我对git和GitHub都很新.

因此,在我目前的设置中,我的团队使用git flow Hotfixes(通常由GitKraken或IntelliJ等图形工具启动和完成)进行更改,这些更改必须合并到两个分支中并在两个分支中向上推送.例如,流程将是:

  1. 从大师拉最新
  2. 启动修补程序
  3. 提交更改
  4. 将修补程序分支合并到主服务器中并开发并推送上游两者

我们现在正在考虑将代码移到GitHub中,并希望开始使用Pull Requests,原因如下:

  • CI挂钩运行测试和东西
  • 放置代码特定注释的地方与底层"问题"没有直接关系
  • 避免每个人不断地将最新的master/develop拉到他们的本地机器上,以便他们可以合并更改

但在Hotfixes的情况下,我不知道该怎么办,因为我正在合并到两个分支但它真的是一个"动作"所以手动创建两个拉动请求似乎很奇怪,特别是因为我们当前的流程中的步骤4)单击一下.

有一种聪明的方法来处理这个问题吗?我理想的情况是推动Pull Request上的Merge按钮只会合并到两者中,但这似乎不是一个可用的选项.

github git-flow

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

DisplayFor和ValueFor之间的区别

我想知道之间的区别是什么ValueFor,直到最近我才知道,以及DisplayFor我用来显示值的差异.

我建立了一个测试项目,在其中我创建了一个具有2个属性的Model:

public class TestModel
{
    [Display(Name = "Montant")]
    [DisplayFormat(DataFormatString = "{0:C2}")]
    public Decimal Amount
    {
        get;
        set;
    }

    [Display(Name = "Date d'achat")]
    [DataType(DataType.Date)]
    public DateTime Date
    {
        get;
        set;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我得到的结果:

TestModel model = new TestModel
{
    Amount = 1234.333M,
    Date = DateTime.Today.AddDays(-10)
};

@Html.DisplayFor(x => x.Amout)   => "1 234,33 €"
@Html.ValueFor(x => x.Amount)    => "1234,333"

@Html.DisplayFor(x => x.Date)    => "23/03/2014"
@Html.ValueFor(x => x.Date)      => "23/03/2014 00:00:00"
Run Code Online (Sandbox Code Playgroud)

从我所看到的,没有使用的优势ValueFor而不是@Model.PropertyName

在寻找答案时,我偶然发现了这个问题,其中最受欢迎的答案虽然没有被选为最佳答案,但却给出了与我不同的结果. …

asp.net-mvc view-helpers

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

如何使用WCF和WIF的JWT令牌?

一般注意事项

我们正在使用IdentityServer3,并且到目前为止对它非常满意.
在MS和Thinktecture OWIN中间件的帮助下,我们可以非常轻松地保护MVC和ASP.NET Web API应用程序.

我们正在为之工作的客户端仍然有很多SOAP WCF服务,而这正是我们陷入困境的地方.

安装程序

我不会撒谎,我远没有体验过WCF,我只是将它用于非常基本的场景 - 理解basicHttpBinding,没有传输,也没有消息安全.

这就是我想要实现的目标:

  • 客户端从IdentityServer获取JWT访问令牌
  • 不知何故,令牌最终出现在SOAP消息头中
  • WCF读取并验证令牌
  • WCF根据某些标准检查索赔并执行授权

我无法完成第三步.

服务器设置

  • 我使用的是ws2007FederationHttpBindingTransportWithMessageCredential安全模式.消息包含a BearerKey且令牌属于类型urn:ietf:params:oauth:token-type:jwt
  • 该服务使用WIF标识管道,我在其中添加JwtSecurityTokenHandlerSystem.IdentityModel.Tokens.JwtNuGet包

客户端设置

  • STS发出的JWT令牌包装在一个BinarySecurityTokenXML元素中,它本身包含在一个GenericXmlSecurityElement
  • 该令牌被用作的一个参数CreateChannelWithIssuedTokenChannelFactory

怎么了

该标记位于SOAP标头中并传递给JwtSecurityTokenHandler.
但随后会抛出异常:

System.ServiceModel.Security.MessageSecurityException: Message security verification failed. ---> System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at System.Xml.XmlBufferReader.GetChars(Int32 offset, Int32 length, Char[] chars)
   at System.Xml.XmlBufferReader.GetString(Int32 offset, Int32 length)
   at System.Xml.StringHandle.GetString()
   at System.Xml.XmlBaseReader.ReadEndElement()
   at …
Run Code Online (Sandbox Code Playgroud)

wcf wif jwt identityserver3

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

Autofac寄存器接口MediatR

我在用Autofac注册IRequest和IRequestHandler接口时遇到麻烦。此代码有效:

var builder = new ContainerBuilder();
builder.RegisterAssemblyTypes(typeof(IMediator).GetTypeInfo().Assembly).AsImplementedInterfaces();
builder.RegisterAssemblyTypes(typeof(Ping).GetTypeInfo().Assembly).AsImplementedInterfaces();
builder.RegisterControllers(Assembly.GetExecutingAssembly());
builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
Run Code Online (Sandbox Code Playgroud)

现在,我想使其更加灵活,以避免必须注册使用接口的所有类。

我没有运气尝试过这个:

builder.RegisterGeneric(typeof(IRequest<>)).AsImplementedInterfaces();
builder.RegisterGeneric(typeof(IRequestHandler<,>)).AsImplementedInterfaces();
Run Code Online (Sandbox Code Playgroud)

这是我的Ping班:

public class Ping : IRequest<Pong>
{
    public string Message { get; set; }
}

public class Pong
{
    public string Message { get; set; }
}

public class PingHandler : IRequestHandler<Ping, Pong>
{
    public Pong Handle(Ping message)
    {
        return new Pong { Message = message.Message + " Pong" };
    }
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

asp.net-mvc dependency-injection autofac mediator

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

如何注册 MediatR 后处理器

我想在 MediatR 中尝试新的管道功能:https : //github.com/jbogard/MediatR/wiki/Behaviors

我尝试了以下操作,但没有执行

services.AddMediatR();                    
services.AddTransient(typeof(IRequestPostProcessor<,>), typeof(PostHandler<,>));
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

.net-core mediatr

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

MediatR Autofac Handler 在容器中注册

我在我的第一个 IMediatR Autofac MVC 项目中遇到了问题。非常感谢您的帮助..提前致谢!

找不到 SliceProject.Services.Query.GetUserListQuery 类型的请求的处理程序。容器或服务定位器配置不正确,或者处理程序未在容器中注册。

Autofac 容器代码:

builder
    .RegisterAssemblyTypes(typeof(IRequest<>).Assembly)
    .Where(t => t.IsClosedTypeOf(typeof(IRequest<>)))
    .AsImplementedInterfaces();    

builder
    .RegisterAssemblyTypes(typeof(IRequestHandler<,>).Assembly)
    .Where(t => t.IsClosedTypeOf(typeof(IRequestHandler<,>)))
    .AsImplementedInterfaces();
Run Code Online (Sandbox Code Playgroud)

mediatr

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

如何在 switch case 中使用枚举来比较字符串-C#

我有一个像下面这样的枚举

public enum Colors
{
    red,
    blue,
    green,
    yellow
}
Run Code Online (Sandbox Code Playgroud)

我想用它开关盒

public void ColorInfo(string colorName)
{
    switch (colorName)
    {
        // i need a checking like (colorname=="red")
        case Colors.red:
            Console.log("red color");
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

 Cannot implicitly convert type 'Color' to string
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助解决这个问题..

.net c# enums

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