小编Bob*_*erg的帖子

具有多个项目的服务器的GIT存储库布局

我喜欢Subversion设置的方式之一就是我可以拥有一个包含多个项目的主存储库.当我想在一个项目上工作时,我可以查看该项目.像这样

\main
    \ProductA
    \ProductB
    \Shared
Run Code Online (Sandbox Code Playgroud)

然后

svn checkout http://.../main/ProductA
Run Code Online (Sandbox Code Playgroud)

作为git的新用户,我想在提交特定工作流程之前探索该领域的一些最佳实践.从我到目前为止所读到的,git将所有内容存储在项目树根目录下的单个.git文件夹中.所以我可以做两件事之一.

  1. 为每个产品设置单独的项目.
  2. 设置单个大型项目并将产品存储在子文件夹中.

产品之间存在依赖关系,因此单个大型项目似乎是合适的.我们将使用一个服务器,所有开发人员都可以共享他们的代码.我已经通过SSH和HTTP工作了这部分我喜欢的部分.但是,SVN中的存储库已经有很多GB的大小,因此在每台机器上拖动整个存储库似乎是一个坏主意 - 特别是因为我们需要承担过多的网络带宽.

我想,Linux内核项目存储库同样大,所以必须有一个正确的方法来处理这个用Git,但我还没想到它.

是否有使用非常大的多项目存储库的指南或最佳实践?

git

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

在C#中:在以逗号分隔的字符串列表中的字符串周围添加引号

这可能有一个简单的答案,但我一定没有足够的咖啡来自己解决:

如果我有逗号分隔的字符串,例如:

string list = "Fred,Sam,Mike,Sarah";
Run Code Online (Sandbox Code Playgroud)

如何获取每个元素并在其周围添加引号并将其粘贴回如下字符串:

string newList = "'Fred','Sam','Mike','Sarah'";
Run Code Online (Sandbox Code Playgroud)

我假设迭代每一个都是一个开始,但我在那之后感到难过.

一个难看的解决方案:

int number = 0;
string newList = "";
foreach (string item in list.Split(new char[] {','}))
{
    if (number > 0)
    {
        newList = newList + "," + "'" + item + "'";
    }
    else
    {
        newList = "'" + item + "'";
    }
    number++;
}
Run Code Online (Sandbox Code Playgroud)

c# string

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

通过反思访问集合

有没有办法使用反射迭代(通过foreach优先)集合?我正在使用反射迭代对象中的属性,当程序到达一个集合类型时,我希望它迭代集合的内容并能够访问集合中的对象.

目前,我在所有属性上都设置了属性,并且在集合属性上将IsCollection标志设置为true.我的代码检查此标志,如果是,则使用反射获取Type.有没有办法在某个集合上以某种方式调用GetEnumerator或Items才能迭代这些项目?

c# reflection collections

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

在LINQ查询中执行转换

是否可以在LINQ查询中进行转换(出于编译器的考虑)?

下面的代码并不可怕,但将它组合成一个查询会很好:

Content content = dataStore.RootControl as Controls.Content;

List<TabSection> tabList = (from t in content.ChildControls
                            select t).OfType<TabSection>().ToList();

List<Paragraph> paragraphList = (from t in tabList
                                 from p in t.ChildControls
                                 select p).OfType<Paragraph>().ToList();

List<Line> parentLineList = (from p in paragraphList
                             from pl in p.ChildControls
                             select pl).OfType<Line>().ToList();
Run Code Online (Sandbox Code Playgroud)

代码继续进行一些查询,但要点是我必须从每个查询中创建一个List,以便编译器知道所有content.ChildControls类型TabSection的对象和所有类型的对象t.ChildControls都是类型Paragraph. ..等等等等.

在LINQ查询中是否有一种方法可以告诉编译器tin ?from t in content.ChildControlsTabSection

.net c# linq .net-3.5

29
推荐指数
2
解决办法
5万
查看次数

测试对象是否是C#中的字典

有没有办法测试对象是否是字典?

在一个方法中,我试图从列表框中的选定项目中获取值.在某些情况下,列表框可​​能绑定到字典,但在编译时不知道.

我想做类似的事情:

if (listBox.ItemsSource is Dictionary<??>)
{
    KeyValuePair<??> pair = (KeyValuePair<??>)listBox.SelectedItem;
    object value = pair.Value;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在运行时使用反射动态地执行此操作?我知道可以使用泛型类型的反射并确定键/值参数,但我不确定在检索这些值之后是否有办法完成其余的操作.

c# reflection collections dictionary

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

以编程方式清除WPF ComboBox中的选择

我在WPF中有一个ComboBox,其ItemsSource以编程方式设置为列表.我如何在事件处理程序中清除选择?我试过了:

comboBox.SelectedIndex = -1;
comboBox.SelectedItem = null;
comboBox.SelectedValue = null;
comboBox.SelectedValue = "";
Run Code Online (Sandbox Code Playgroud)

它们都没有任何影响.

c# wpf

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

具有SelectList(s)最佳实践的ASP.NET MVC ViewModel

我注意到在NerdDinner应用程序中,如果ModelState对于晚餐无效,它只返回模型的视图:

        if (ModelState.IsValid) {
            ...
            return RedirectToAction("Details", new { id=dinner.DinnerID });
        }

        return View(dinner);
Run Code Online (Sandbox Code Playgroud)

但是,在我的应用程序中,模型(在这种情况下的视图模型)包含多个SelectLists.此时未实例化这些列表,因为此视图模型刚刚从表单提交中填充.在将此SelectLists发送回用户之前,重新填充此SelectLists的建议方法是什么?

这就是我希望我的控制器做的事情:

public ActionResult Save(MyModel model)
{
    if (ModelState.IsValid)
    {
        businessClass.Save(model);
        return RedirectToAction("Index", "Home");
    }

    // This won't work because model has uninstantiated SelectLists
    return View("MyView", model);
}
Run Code Online (Sandbox Code Playgroud)

我不想对模型发送到我的业务逻辑,如果ModelState中是无效的,但它似乎并没有什么意义放的SelectList人口代码在我的控制器.我应该在我的业务逻辑中创建一个公共方法,仅仅是为了在我的视图模型上做这种事情吗?

asp.net-mvc selectlist

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

如何让SVN忽略Mac"._"文件?

我的开发服务器由几个OSX用户访问,他们的操作系统往往会在这个地方留下许多不必要的文件,所有文件都以点下划线(" ._")开头.我知道OSX可以被告知不要在网络驱动器上创建它们,但它们仍然潜入.我希望SVN忽略任何以" ._" 开头的东西,但我似乎无法让它工作,即使它看起来像它应该很简单.我已经向._*SVN全局忽略模式添加了" ",但SVN仍在尝试添加和提交这些文件.谁能告诉我我做错了什么?我的完整SVN忽略模式是:

global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo *.rej *~ #*# .#* .*.swp .DS_Store Thumbs.db ._* *.bak *.tmp nbproject
Run Code Online (Sandbox Code Playgroud)

我不知道它是否有任何区别,但我试图通过编辑/ etc/subversion/config文件在Ubuntu和Ubuntu服务器上设置它.

svn

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

从没有密钥的代码创建XAML资源

有没有办法从代码中向ResourceDictionary添加资源而不给它一个资源键?

例如,我在XAML中有这个资源:

<TreeView.Resources>
    <HierarchicalDataTemplate DataType="{x:Type xbap:FieldPropertyInfo}"
        ItemsSource="{Binding Path=Value.Values}">
            <TextBlock Text="{Binding Path=Name}" />
    <HierarchicalDataTemplate>
</TreeView.Resources>
Run Code Online (Sandbox Code Playgroud)

我需要从代码动态创建此资源并将其添加到TreeView ResourceDictionary.但是,在没有Key的XAML中,默认情况下,它用于所有FieldPropertyInfo类型.有没有办法在没有密钥的情况下将它添加到代码中的资源,或者有没有办法可以使用密钥并且仍然在所有FieldPropertyInfo类型上使用它?

这是我到目前为止在C#中所做的事情:

HierarchicalDataTemplate fieldPropertyTemplate = new HierarchicalDataTemplate("FieldProperyInfo");

fieldPropertyTemplate.ItemsSource = new Binding("Value.Values");

this.Resources.Add(null, fieldPropertyTemplate);
Run Code Online (Sandbox Code Playgroud)

显然,将资源添加到ResourceDictionary,键null不起作用.

c# wpf xaml code-behind

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

使用非托管代码中的DLR

是否可以从非托管代码(如C++或Delphi)调用托管代码,特别是IronRuby或IronPython?

例如,我们有一个用Delphi编写的应用程序正在转移到C#.NET我们想在我们的新应用程序中提供Ruby或Python脚本来替换VBSCRIPT.但是,我们需要在旧的Delphi应用程序中提供Ruby/Python脚本.是否可以使用Delphi代码中IronRuby/IronPython提供的托管dll?

.net delphi ironpython ironruby unmanaged

5
推荐指数
2
解决办法
839
查看次数