小编Sar*_*kar的帖子

如何在Git中检索当前提交的哈希值?

我想保留(现在)能够将Git变更集链接到存储在TFS中的工作项.

我已经编写了一个工具(使用Git中的一个钩子),我可以在其中将workitemidentifiers注入到Git变更集的消息中.

但是,我还想将Git提交的标识符(哈希)存储到自定义TFS工作项字段中.通过这种方式,我可以检查TFS中的工作项,并查看与工作项相关联的Git更改集.

如何从Git的当前提交中轻松检索哈希?

git tfs changeset tfs-workitem

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

使用MSBuild将多个值传递给Wix DefineConstants属性

我目前正在将我的Wix项目集成到MSBuild中.我有必要将多个值传递给Wix项目.一个值将起作用(下面示例中的ProductVersion).

<Target Name="BuildWixSetups">
    <MSBuild Condition="'%(WixSetups.Identity)'!=''"
                Projects="%(WixSetups.Identity)"
                Targets="Rebuild" Properties="Configuration=Release;OutputPath=$(OutDir);DefineConstants=ProductVersion=%(WixSetups.ISVersion)" ContinueOnError="true"/>
</Target>
Run Code Online (Sandbox Code Playgroud)

但是,如何将多个值传递给DefineConstants键?我已经尝试了所有'逻辑'分隔符(空格,逗号,分号,管道符号),但这不起作用.

有其他人遇到过这个问题吗?

解决方案不起作用:

  1. 尝试添加DefineConstants元素不起作用,因为需要在Properties属性中表达DefineConstants.

msbuild wix msbuild-task

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

工厂方法和泛型

我有以下界面和实现:

public interface IRepository<T>
{
    IList<T> GetAll();
}

internal class TrendDataRepository : IRepository<TrendData>
{
    public IList<TrendData> GetAll()
    {
        //.. returns some specific data via Entity framework
    }
}
Run Code Online (Sandbox Code Playgroud)

我将要有多个实现,它们都通过Entity Framework返回不同的数据.在某些时候,我想向用户表示实现IRepository接口的类列表.我使用以下代码执行此操作.这对我很有用.

    public static IEnumerable<string> GetAvailableRepositoryClasses()
    {
        var repositories = from t in Assembly.GetExecutingAssembly().GetTypes()
                           where t.GetInterfaces().Any(x => x.IsGenericType && x.GetGenericTypeDefinition() == typeof (IRepository<>))
                           select t.Name;

        return repositories;
    }
Run Code Online (Sandbox Code Playgroud)

但是,我还想创建一个工厂方法,给定一个特定的字符串将返回一个具体的存储库类型,并允许我在其上调用'GetAll'方法.在伪代码中:

someObject = Factory.CreateInstance("TrendData");
someObject.GetAll();
Run Code Online (Sandbox Code Playgroud)

(我知道这不起作用,因为我必须在工厂方法中指定具体类型).

我希望这个功能,因为我想让用户能够将报告绑定到特定的数据源.通过这种方式,他们可以启动一个新报告,其中报告的数据源绑定到(例如)TrendDataRepository.GetAll()方法.

然而,也许是因为世界末日即将来临;-)或者是星期五下午我不能再思考了,我不知道如何实现这一点.

一些指针真的很受欢迎.

c# generics factory-method

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

POCO,ORM和不变性。如何使他们一起工作?

假设我有一个下面的C#类,我希望它是不可变的。您只能使用参数化的构造函数进行设置。

public class InsulineInjection
{
    private InsulineInjection()
    {
        // We don't want to enable a default constructor.
    }

    public InsulineInjection(Millilitre millilitre, DateTime dateTime, string remark)
    {
        this.Remark = remark;
        this.DateTime = dateTime;
        this.Millilitre = millilitre;
    }

    public string Remark { get; private set; }
    public DateTime DateTime { get; private set; }
    public Millilitre Millilitre { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)

现在,我想使用一个ORM创建此POCO。但是,据我所知,所有.NET ORM都希望可以访问属性并具有一个公共构造函数来创建此POCO。因此,我必须将POCO更改为:

public class InsulineInjection
{
    public InsulineInjection()
    {
    }

    public InsulineInjection(Millilitre millilitre, DateTime dateTime, string remark)
    {
        this.Remark …
Run Code Online (Sandbox Code Playgroud)

c# orm immutability poco

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

在哪里可以获得按代码排序的 FxCop 警告的完整列表?

我熟悉MSDN 列表,但我想要一个按代码排序的列表。我们的许多开发人员无法轻松访问互联网,如果我能为他们提供离线完整的警告列表,那就太好了。

我希望它们按警告代码排序,因为这是它们识别 Fxcop 日志文件中问题的方式。

fxcop

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