小编Ano*_*ous的帖子

是否有可能获得没有克隆的分支名称或从git拉?

我想获取git存储库的所有分支名称.目前,我克隆存储库然后在本地计算机上获取它们.这是低效的,因为我需要的只是名字而不是别的.

我想知道是否可以这样做?如果是这样,我可以使用什么命令.

git git-branch

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

.NET的大多数灵活性规则引擎

我即将推出的项目与销售系统有关,因此其中一个主要要求是"用户可以自行修改促销".促销活动各不相同,他们给我一些促销.

  1. 买1送1,买2送3.
  2. 一个为30%,两个为50%,三个为80%
  3. 购买产品A将使产品B折扣30%
  4. 每次交易超过20美元可享八折优惠

我知道一点规则引擎,请给我一本书来学习它.

.net c# rule-engine

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

IL中的ldsfld和ldstr有什么不同?

我已经阅读了一些关于String.Empty vs""的文章,我也做了自己的测试.它们之间有所不同.

的String.Empty

L_0001: ldsfld string [mscorlib]System.String::Empty
Run Code Online (Sandbox Code Playgroud)

""

L_0001: ldstr ""
Run Code Online (Sandbox Code Playgroud)

在我与朋友交谈之后,他们认为String.Empty比""更快,因为在引擎盖下(在汇编级别)ldstr比ldsfld做更多的1圈.(我不记得使它们与众不同的步骤)

我想知道如何检查这方面的性能.

.net cil

8
推荐指数
3
解决办法
3781
查看次数

为什么在Silverlight MVVM中通过ViewModel公开Model是不好的?

至于我用MVVM开发WPF应用程序,我从不通过viewmodel的公共属性公开模型.无论如何,在我刚刚来到Silverlight和WCF RIA的世界之后,我找到了实现数据验证的新方法,这就是必需属性所说的.(还有其他属性)

这次不是在viewmodel中创建验证逻辑,而是在模型本身内部几乎可以做验证逻辑.

public class TestUserPM {
    [Key]
    public int ID { get; set; }

    [Required]
    public string FirstName { get; set; }

    [Required]
    public string Email { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

之后,我在ViewModel中需要的只是公开TestUserPM类型的公共属性,并让View绑定到模型.

我认为这不是优雅的解决方案,但它可以工作,它不需要在viewmodel属性中创建繁琐的验证.

这种方法有任何缺点吗?

更新1

我刚刚找到了1个下方,可能是它有解决方案.我想绑定Button的Command,例如,按钮保存到ViewModel中的Command,但是当且仅当所有信息都有效时,此按钮才能执行.从我与WPF MVVM我已经助手类,我会打电话的经历OnCanExecuteChanged()里面public string this[string columnName]IDataErrorInfo.

我该如何处理这种要求?

silverlight mvvm

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

如何使用LibGit2Sharp在Git上获取文件内容?

我检查了代码,BlobFixture.cs发现了一些关于读取文件内容的测试,如下所示.

using (var repo = new Repository(BareTestRepoPath))
{
    var blob = repo.Lookup<Blob>("a8233120f6ad708f843d861ce2b7228ec4e3dec6");

    var contentStream = blob.GetContentStream();
    Assert.Equal(blob.Size, contentStream.Length);

    using (var tr = new StreamReader(contentStream, Encoding.UTF8))
    {
        string content = tr.ReadToEnd();
        Assert.Equal("hey there\n", content);
    }
}
Run Code Online (Sandbox Code Playgroud)

但我找不到根据文件名获取文件内容的测试.是否有可能这样做,如果是这样的话?

.net c# git version-control libgit2sharp

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

单击时如何禁用WPF按钮的边框?

单击时如何禁用WPF按钮的边框?

我已经创建了如下所示的按钮,除非我点击按钮,否则一切正常.

<Button Background="Transparent" BorderBrush="Transparent">
    <Button.Content>
        <StackPanel>
            <Image Source="xxx.png" />
            <TextBlock Text="Change Password" />
        </StackPanel>
    </Button.Content>
</Button>
Run Code Online (Sandbox Code Playgroud)

当我点击按钮时,它有如下边框.

alt text http://www.freeimagehosting.net/uploads/8ece306bd4.png

我尝试为FocusVisualStyle按钮创建样式但它不能像我期望的那样工作,当我也设置时也会出现这个问题IsDefault="True".

wpf styles

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

ASP.NET 4中"(单引号)和"(双引号)之间的区别

我想在aspx页面中的服务器控件的代码隐藏中调用MyMethod,如下所示.

MyPage.aspx

<asp:Label ID="MyLabel" runat="server" Text='<%# MyMethod(Eval("MyColumn")) %>'>
Run Code Online (Sandbox Code Playgroud)

MyPage.aspx.cs

protected void MyMethod(object obj) { ... }
Run Code Online (Sandbox Code Playgroud)

如果我使用",而不是'在aspx页面,然后它会给我一个编译错误的服务器标记的格式不正确.如下.

<asp:Label ID="MyLabel" runat="server" Text='<%# MyMethod(Eval("MyColumn")) %>'> // This line work
<asp:Label ID="MyLabel" runat="server" Text="<%# MyMethod(Eval("MyColumn")) %>"> // This line error
Run Code Online (Sandbox Code Playgroud)

我想知道为什么我需要使用单引号,这是一个规则吗?在我的情况下如何使用双引号?

asp.net

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

如何在xunit.net中测试两个对象是否相等?

我正在阅读测试驱动开发:通过示例.所有示例都使用Java和Junit(我在第10章).有一种测试方法可以测试两个对象的相等性.我已经覆盖了类的等于但是在运行我的测试时它失败了.

这是示例代码

public class BaseX
{
    public string Test { get; set; }

    public override bool Equals(object obj)
    {
        return this.Test == ((BaseX)obj).Test;
    }

    public override string ToString()
    {
        return string.Format("Tyep: {0}, Test: {1}", this.GetType().Name, this.Test);
    }
}

public class A : BaseX
{

}
Run Code Online (Sandbox Code Playgroud)

这是我的测试代码

[Fact]
public void FunTest2()
{
    var b1 = new BaseX();
    var a1 = new A();

    b1.Test = "a";
    a1.Test = "a";

    Assert.Equal(a1, b1);
}
Run Code Online (Sandbox Code Playgroud)

当我运行测试时,它将失败并显示此消息.

TDD1.UnitTest.UnitTest1.FunTest2 : Assert.Equal() Failure
Expected: Tyep: A, …
Run Code Online (Sandbox Code Playgroud)

unit-testing xunit.net

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

如何从数据库中删除所有内容(表,视图,存储过程,函数)?

我想删除数据库,表,视图,存储过程和函数中的所有内容.我找到了一些链接,但它们不适用于复杂的数据库.它没有删除表.这是我在本网站上发现的脚本的自己版本并进行了调整.

/* Drop all non-system stored procs */ 
DECLARE @name VARCHAR(128) 
DECLARE @SQL VARCHAR(254)
DECLARE @schema VARCHAR(128)

SELECT @name = (SELECT TOP 1 [name] FROM sysobjects WHERE [type] = 'P' AND category = 0 ORDER BY [name]) 
SELECT @schema = (SELECT TOP 1 schema_name(schema_id) FROM sys.procedures WHERE [name] = @name)

WHILE @name is not null 
BEGIN 
    SELECT @SQL = 'DROP PROCEDURE [' + @schema + '].[' + RTRIM(@name) +']' 
    EXEC (@SQL) 
    PRINT 'Dropped Procedure: ' + @name 

    SELECT @name = …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

7
推荐指数
2
解决办法
8828
查看次数

什么相当于 LibGit2Sharp 上的 git checkout branch_name

我在 git 服务器中有 2 个分支,分别是 master 和 develop。我使用下面的代码将存储库克隆到我的机器上。

var options =
    new CloneOptions()
    {
        CredentialsProvider = this.credentialsHandler,
    };

return
    Repository.Clone(
        gitHttpUrl,
        localPath,
        options);
Run Code Online (Sandbox Code Playgroud)

默认分支是 master。我想使用以下代码切换到开发分支。

using (var repo = new Repository(localPath))
{
    var branch = repo.Branches[branchName];

    repo.Checkout(branch);
}
Run Code Online (Sandbox Code Playgroud)

但分支为空。

如何使用 LibGit2Sharp 切换分支?

更新
默认分支是master,下面是重现问题的步骤。

  1. 结账develop分行
  2. 拉,这里抛出异常。

这是代码:

private void Checkout(string localPath, string branchName)
{
    using (var repo = new Repository(localPath))
    {
        var branch = repo.Branches[branchName];

        if (branch == null)
        {
            branch = repo.CreateBranch(branchName, "origin/" + …
Run Code Online (Sandbox Code Playgroud)

git libgit2sharp

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