小编Sli*_*ish的帖子

基于字符串的Ninject绑定

我有一个Web服务,它将传递一些数据(特别是来自SharePoint文档库的InfoPath xml).我目前正在使用Ninject来处理要加载的数据"策略".这是一些代码(问题如下):

网络服务(入口点)

namespace Web.Services
{
    public bool AddForm(XmlDocument form, string formName)
    {
        IKernel kernel = new StandardKernel(new FormsModule());
        var ctx = kernel.Get<IPFormDataContext>(formName);

        return ctx.DoWork(form);
    }
}
Run Code Online (Sandbox Code Playgroud)

Ninject相关事物

namespace Core.Modules
{
    public class FormsModule : NinjectModule
    {
        public override void Load()
        {
            Bind<IPFormDataContext>().ToSelf().Named("FormA");
            Bind<IPFormDataContext>().ToSelf().Named("FormB");
            // Snip

            Bind<IPFormDataStrategy>().To<FormAStratgey>()
                .WhenParentNamed("FormA");
            Bind<IPFormDataStrategy>().To<FormBStrategy>()
                .WhenParentNamed("FormB");
            // Snip
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

模式相关的事情

namespace Core.Forms
{
    public class IPFormDataContext
    {
        private IPFormDataStrategy _ipFormDataStrategy;

        public IPFormDataContext(IPFormDataStrategy strategy)
        {
            _ipFormDataStrategy = strategy;
        }

        public bool DoWork(XmlDocument form)
        {
            return …
Run Code Online (Sandbox Code Playgroud)

c# ninject

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

通过用户输入过滤ObservableCollection

我有一个大约1000个对象的ObservableCollection需要由最终用户过滤(搜索).用户必须能够按名称或员工ID进行搜索.列表控件使用FilteredEmployees和Employees在页面加载时加载了所有内容.

我目前设置如下:

public ObservableCollection<EmployeeServicesData> Employees { get; set; }
public ObservableCollection<EmployeeServicesData> FilteredEmployees { get; set; }

internal void FilterEmployee(string searchText, bool isByName)
{
    if (searchText.Length > 0)
    {
        IEnumerabe<EmployeeServicesData> filter;

        if (isByName)
            filter = Employees.Where(x => x.Name.Length >= searchText.Length).Where(x => x.Name.Substring(0, searchText.Length) == searchText.ToUpper());
        else
            filter = Employees.Where(x => x.EmployeeNumber.ToString().Length > searchText.Length).Where(x => x.EmployeeNumber.ToString().Substring(0, searchText.Length) == text);

        foreach (EmployeeServicesData employee in filter)
            FilteredEmployees.Add(employee);
    }
}
Run Code Online (Sandbox Code Playgroud)

在此方法之前处理卫生.

这闻起来不是很有效.我应该使用两种方法,还是有更好的方法来处理过滤?

我希望将Employees保持在未更改状态,这样我就可以将FilteredEmployees重新填充到完整列表,而无需再次访问DB.

c# silverlight

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

FormClosingEventArgs.CloseReason中的错误?

我要求的要求

大约有12人正在使用此应用程序,但我们只想允许4通过传统方法关闭应用程序(Alt + F4,文件>退出,关闭)

如果使用任何其他方法(TaskManager,WindowsShutdown)或其中一个允许的用户关闭应用程序,我们需要执行一些清理(关闭一些连接通道)

我曾用过的守则满足上述要求

private void formClosing(object sender, FormClosingEventArgs e)
{
    // If a user is allowed to close the application, an empty file (filename)
    // will be in the root directory of the application.
    if(e.CloseReason == CloseReason.UserClosing && !File.Exists("filename"))
    {
        e.Cancel = true;
        return;
    }

    // Cleanup
}
Run Code Online (Sandbox Code Playgroud)

问题

如果用户(不允许关闭)尝试通过传统方法关闭应用程序,则尝试使用任务管理器关闭CloseReason枚举似乎不会自行重置,从而导致任务管理器弹出提示强制关闭,从而阻止清理申请.

问题

这是一个错误,或者我错过了什么,会在FormClosing事件被取消后重置CloseReason.

c# winforms

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

SPList.GetItems(view)在尝试获取项目标题时返回异常

当我尝试:

using (SPWeb web = site.OpenWeb("/"))
{
    SPList list = web.Lists["Blah"];
    SPView view = web.GetViewFromUrl("http://foo.com/Lists/Blah/View%20Name.aspx");

    foreach (SPListItem item in list.GetItems(view))
    {
        writer.write(item.Title);
    }
}
Run Code Online (Sandbox Code Playgroud)

item.Title让我得到一个ArgumentException.

但是当我使用时

foreach (SPListItem item in list.Items)
{
     writer.write(item.Title);
}
Run Code Online (Sandbox Code Playgroud)

它工作得很好.

这里发生了什么?在传递视图时,如何获取列表项的标题?

c# sharepoint

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

根据我的需要选择正确的CI服务器

我正在为一个重大项目研究/设置持续集成服务器,并且需要建议或批评.

Need
CI只是我们道路上的下一步.它是在正确的时间强制执行的,因为一个主要项目正在筹备中.

限制

  • 需要能够与我们的SCM系统(SVN)在同一台服务器上生活
  • 服务器(不幸的是)是XP Pro机器.
  • 需要处理.NET构建.
  • 想要有一些分析功能.或者能够在以后添加.
  • 预算,免费首选.
  • 虽然我们有能力,但配置将更容易.
  • 我们的SVN Web前端正在使用apache.希望CI的前端做同样的事情,但是否则可以处理IIS.
  • 与NAnt一起建设

到目前为止,我把它缩小到目前为止
我正在考虑4种选择:

  • 巡航
  • CruiseControl.NET
  • TeamCity - 目前正在测试,到目前为止似乎还不错,免费专业版对我们的项目有足够的代理.
  • 哈德森

什么是我真正的问题
根据您对上述任何一项或所有项目的经验,您所看到的任何批评或整洁的事情是什么.在安装过程中需要注意或注意的事项?如果你不得不重新做一遍,你会选择同样的东西吗?

continuous-integration

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