小编Dav*_*itt的帖子

如何从C#调用MSBuild

有没有更好的方法从C#/ .NET调用MSBuild而不是shelling到msbuild.exe?如果有,怎么样?

.net c# msbuild

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

我的System.Xml.Linq库有什么问题吗?

我正在尝试学习一些Linq to XML的东西,我在XElement中遇到了XPathSelectElement函数.这个功能似乎只是我需要的,但由于某种原因,我不能使用它!看看我的代码:

        XElement rootElement = XElement.Load(dataFile);
        XElement parentElement = rootElement.XPathSelectElement(xPath);
Run Code Online (Sandbox Code Playgroud)

我已经在所有需要的地方包含了对System.Xml.Linq的引用.我尝试过的那个库中的所有其他东西似乎都在工作,但XPathSelectElement甚至没有出现在visual studio的Intellisense中.

构建上面的代码时,我收到以下错误:

错误1'System.Xml.Linq.XElement'不包含'XPathSelectElement'的定义,并且没有可以找到接受类型'System.Xml.Linq.XElement'的第一个参数的扩展方法'XPathSelectElement'(你错过了吗? using指令或程序集引用?)C:\ PageHelpControl\PageHelp.cs 155 50 HelpControl

.net linq dll

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

使用"朋友" - 单元测试的声明.馊主意?

[ 当然,问题不仅限于特定的"朋友"实现,请尽可能指出相关的实施细节 ]

通过未解答的问题,我偶然发现了这个InternalsVisibleTo属性:

指定仅在当前程序集中通常可见的类型对另一个程序集可见.

MSDN上的C#编程指南有一个Friend Assemblies部分,描述了如何使用该属性允许将方法和类型用于另一个程序集.internal

我想知道使用它来创建一个"隐藏"界面来检测库以供单元测试组件使用是否是一个好主意.它似乎在两个方向上大量增加耦合(测试生产程序集中的代码,关于测试代码中生产程序集的内部知识),但另一方面,它可能有助于创建细粒度的测试而不会混乱公共接口.

您在测试时使用好友声明的经验是什么?它是你的银色子弹,还是它开始了死亡三月?

.net language-agnostic unit-testing internalsvisibleto friend

17
推荐指数
2
解决办法
3267
查看次数

如何访问WPF ListView的ListViewItem?

在一个事件中,我想把重点放在ListViewItem模板中的特定TextBox上.XAML看起来像这样:

<ListView x:Name="myList" ItemsSource="{Binding SomeList}">
    <ListView.View>
        <GridView>
            <GridViewColumn>
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <!-- Focus this! -->
                        <TextBox x:Name="myBox"/>
Run Code Online (Sandbox Code Playgroud)

我在后面的代码中尝试了以下内容:

(myList.FindName("myBox") as TextBox).Focus();
Run Code Online (Sandbox Code Playgroud)

但我似乎误解了FindName()文档,因为它返回了null.

ListView.Items没有帮助,因为(当然)包含我绑定的业务对象而没有ListViewItems.

也没有myList.ItemContainerGenerator.ContainerFromItem(item),也返回null.

wpf listview internals

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

C#Lambda表达式和NHibernate

我是NHibernate这个伟大世界的新手.我使用的是2.0.1.GA版.这是我的问题.我有一个Cars包含列Manufacturer(nvarchar(50))和主键的表ID(int).我的.NET类是:

public class Car
{
    public virtual int ID { get; set; }
    public virtual string Manufacturer { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我想要检索梅赛德斯生产的所有汽车,我必须输入:

using (var session = OpenSession())
{
    var cars = session
        .CreateCriteria(typeof(Car))
        .Add(Restrictions.Like("Manufacturer", "Mercedes"))
        .List();
    // ...
}
Run Code Online (Sandbox Code Playgroud)

我不喜欢这样的事实,我需要将属性名称指定为字符串:(是否可能有更多的重构友好(这只是一个建议)?

var ms = session
    .CreateCriteria<Car>()
    .Add(c => c.Manufacturer, Restrictions.Like("Mercedes")
    .List();
Run Code Online (Sandbox Code Playgroud)

在当前版本(2.0.1.GA)或未来版本中有什么类似的东西?

c# nhibernate lambda

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

如何通过Style设置WPF的Grid.RowDefinitions

我用几个Grids来格式化多个GridViewColumn.CellTemplates:

<ListView SharedSizeScope="true">
  <ListView.View>
    <GridView>
      <GridViewColumn>
        <GridViewColumn.CellTemplate>
          <DataTemplate>
            <Grid>
              <Grid.RowDefinitions>
                <RowDefinition SharedSizeGroup="foo" />
                <!-- ... -->
Run Code Online (Sandbox Code Playgroud)

我试图将RowDefinitions(对于所有列都相同)提取到Style:

<Style TargetType="{x:Type Grid}">
  <Setter Property="RowDefinitions">
    <Setter.Value>
      <RowDefinition SharedSizeGroup="foo" />
      <!-- ... -->
Run Code Online (Sandbox Code Playgroud)

但编译器抱怨:

错误:无法设置Property Setter'RowDefinitions',因为它没有可访问的set访问器.

这有点明显,但不是很有帮助.

我怎么能避免多次指定行定义(参见不要重复自己),而不是编写自定义派生的Grid

wpf grid styles

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

github有Visual Studio Addin吗?

我们即将开始一个项目并准备开发环境.我正在寻找使用github和Visual Studio 10的可能性.

那么github有一个Visual Studio Addin吗?

github visual-studio-2010

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

你会在哪里使用C#运行时编译?

我最近在另一个关于C#运行时编译的网站上进行了简短的讨论,同时搜索了其他内容,并认为这个想法很有趣.你有没有用过这个?我试图确定如何/何时可以使用它以及它解决了什么问题.我会非常有兴趣听听你是如何使用它的,或者是在有意义的环境中.

非常感谢.

c# optimization runtime-compilation

11
推荐指数
2
解决办法
4317
查看次数

C#:Dictionary <K,V>如何在没有Add(KeyValuePair <K,V>)的情况下实现ICollection <KeyValuePair <K,V >>?

System.Collections.Generic.Dictionary<TKey, TValue>,它清楚地实现ICollection<KeyValuePair<TKey, TValue>>,但没有所需的" void Add(KeyValuePair<TKey, TValue> item)"功能.

尝试初始化时也可以看到Dictionary这样:

private const Dictionary<string, int> PropertyIDs = new Dictionary<string, int>()
{
    new KeyValuePair<string,int>("muh", 2)
};
Run Code Online (Sandbox Code Playgroud)

失败了

方法'Add'没有重载需要'1'参数

为什么会这样?

.net c# dictionary interface

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

NUnit不服从属性继承

我对NUnit有一个问题 - 想知道是否有人有任何想法.

我们使用的是NUnit 2.5.3.9345和C#3.5.

请使用以下代码:

public class UnitTestBase
{
    [TestFixtureSetUp]
    public void SetUpTestFixture()
    {
        //Do something in base
    }
}

[TestFixture]
public class SomeTestClass : UnitTestBase
{
    [TestFixtureSetUp]
    public void FixtureSetUp()
    {
        //Do something in test class
    }

    [Test]
    public void SomeTest()
    {
        //Some assertion
    }
}
Run Code Online (Sandbox Code Playgroud)

根据文档,如果我运行SomeTestClass.SomeTest(),UnitTestBase.SetUpTestFixture()应该在之前调用SomeTestClass.FixtureSetUp().

情况并非如此 - 只有在我没有[TestFixtureSetUp]在派生类中提供方法时才会调用基本方法.

有什么想法吗?让我真的很困惑!

谢谢.

c# nunit unit-testing

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