小编Stu*_*ens的帖子

使用Ninject在构造函数中使用其他参数创建实例

我决定开始使用Ninject并面临一个问题.说我有以下场景.我有一个IService接口和2个实现此接口的类.而且我还有一个类,它有一个构造函数获取IService和一个int.如何使用Ninject创建此类的实例(我不想硬连接这个int,我想在每次获取实例时都传递它)?

以下是一些说明情况的代码:

interface IService
{
    void Func();
}

class StandardService : IService
{
    public void Func()
    {
        Console.WriteLine("Standard");
    }
}

class AlternativeService : IService
{
    public void Func()
    {
        Console.WriteLine("Alternative");
    }
}


class MyClass
{
    public MyClass(IService service, int i)
    {
        this.service = service;
    }

    public void Func()
    {
        service.Func();
    }

    IService service = null;
}
class Program
{
    static void Main(string[] args)
    {
        IKernel kernel = new StandardKernel(new InlineModule(
            x => x.Bind<IService>().To<AlternativeService>(),
            x => x.Bind<MyClass>().ToSelf())); …
Run Code Online (Sandbox Code Playgroud)

c# ninject ioc-container

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

如何正确停止BackgroundWorker


我有一个有2个组合框的表格.我想combobox2.DataSource基于combobox1.Text和填充combobox2.Text(我假设用户已完成输入combobox1并且正在输入中combobox2).所以我有一个这样的事件处理程序combobox2:

private void combobox2_TextChanged(object sender, EventArgs e)
{
    if (cmbDataSourceExtractor.IsBusy)
       cmbDataSourceExtractor.CancelAsync();

    var filledComboboxValues = new FilledComboboxValues{ V1 = combobox1.Text,
       V2 = combobox2.Text};
    cmbDataSourceExtractor.RunWorkerAsync(filledComboboxValues );
}
Run Code Online (Sandbox Code Playgroud)

至于构建DataSource是一个耗时的过程(它创建一个对数据库的请求并执行它)我决定使用BackgroundWorker在另一个进程中执行它更好.因此,当cmbDataSourceExtractor尚未完成其工作并且用户再键入一个符号时,会出现这种情况.在这种情况下,我在这一行上得到一个例外,
cmbDataSourceExtractor.RunWorkerAsync(filledComboboxValues );说明BackgroundWorker正忙,无法同时执行多个操作.
如何摆脱这种异常?
提前致谢!

.net c# backgroundworker winforms

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

Ado.net - Size属性的大小无效

我试图通过ADO.net从DB获取输出值.有一个客户端代码:

    using (var connection = new SqlConnection(ConnectionString))
    {
        connection.Open();
        SqlCommand command = new SqlCommand("pDoSomethingParamsRes", connection);
        command.CommandType = CommandType.StoredProcedure;
        command.Parameters.Add("@i", 1);
        var outParam = new SqlParameter("@out", SqlDbType.VarChar);
        outParam.Direction = ParameterDirection.Output;
        command.Parameters.Add(outParam);
        command.ExecuteNonQuery();
        Console.WriteLine(command.Parameters["@out"].Value.ToString());
    }
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到以下异常:

the Size property has an invalid size of 0
Run Code Online (Sandbox Code Playgroud)

根据手册SqlParameter.Size属性我可能会省略大小.为什么我会得到这个例外?如何在不通过尺寸的情况下使其工作?
谢谢您的帮助!

c# sql-server ado.net

56
推荐指数
5
解决办法
6万
查看次数

C#中的委托和事件有什么区别?

可能重复:
委托和事件之间有什么区别?

我在面试时得到的这个问题,我仍然不知道答案应该是什么.
我很感激任何想法!

c#

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

唯一的电脑ID

我正在寻找一种获得独特计算机ID的方法.

根据这篇文章,我不能为此目的使用处理器ID.我可以拿主板ID吗?识别计算机的最佳方法是什么?

system-identification

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

NHibernate - ISession.Query <T>()所在的位置


当我尝试编译以下代码时

using System;
using System.Collections.Generic;
using System.Reflection;
using System.Linq;
using NHibernate;

namespace NewNHTest
{
    class A
    { }

    class Program
    {
        static void Main(string[] args)
        {
            ISession session;
            var q = session.Query<A>();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

'NHibernate.ISession' does not contain a definition for 'Query' and no extension method 'Query' accepting a first argument of type 'NHibernate.ISession' could be found (are you missing a using directive or an assembly reference?)
Run Code Online (Sandbox Code Playgroud)

NHibernate.dll版本是3.0.0.4000.
.Net版本的项目是3.5.

我究竟做错了什么?
谢谢您的帮助!

nhibernate linq-to-nhibernate

24
推荐指数
1
解决办法
7497
查看次数

执行存储过程作为另一个用户权限

我遇到了以下问题:有一个用户必须执行存储过程(spTest).在spTest的主体中调用sp_trace_generateevent.sp_trace_generateevent需要更改跟踪权限,我不希望用户拥有它.所以我希望用户能够执行spTest.我怎样才能做到这一点?

sql-server permissions sql-server-2005

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

使用CLR返回表

我想编写一个CLR过程,它接受一个文本并返回一个包含本文中所有单词的表.但我无法弄清楚如何返回一张桌子.你能告诉我吗?

    [Microsoft.SqlServer.Server.SqlFunction]
    public static WhatTypeShouldIWriteHere Function1(SqlString str)
    {
        string[] words = Regex.Split(str, @"\W+").Distinct().ToArray();
        //how to return a table with one column of words?
    }

谢谢您的帮助.

更新:我需要为sql-2005做这件事

c# sql-server clr

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

无法从NHibernate.Driver.SQLite20Driver创建驱动程序

这是引发异常的代码

   public Configuration GetConfiguration()
    {
        var persister = SQLiteConfiguration
            .Standard
            .UsingFile("Test.db")
            .ShowSql();


        var configuration = Fluently
            .Configure()
            .Database(persister)
            .Mappings(map => map.FluentMappings.AddFromAssemblyOf<WordMap>())
            .BuildConfiguration();

        new SchemaExport(configuration).Execute(true, true, false);

        return configuration;

    }
Run Code Online (Sandbox Code Playgroud)

完整的例外文字:

失败:NHibernate.HibernateException:无法从NHibernate.Driver.SQLite20Driver,NHibernate,Version = 2.1.2.4000,Culture = neutral,PublicKeyToken = aa95f207798dfdb4创建驱动程序.

----> System.Reflection.TargetInvocationException:调用目标抛出了异常.

----> NHibernate.HibernateException:找不到程序集System.Data.SQLite中的IDbCommand和IDbConnection实现.确保程序集System.Data.SQLite位于应用程序目录或全局程序集缓存中.如果程序集位于GAC中,请使用应用程序配置文件中的元素指定程序集的全名.

NHibernate的
版本是2.1.2.4000 版本的System.Data.SQLite是1.0.66.0
目标框架是3.5(x86)
System.Data.SQLite的本地副本是ON.

可能有什么不对?

c# sqlite nhibernate

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

如果使用DataBinding,Combobox不允许输入自定义文本


我有以下课程:

class Address
{
     public string City {get; set;}
     public string Street {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

我有一个带有2个组合框的表格.我将这些组合框绑定到Address类:

CityComboBox.DataSource = GetCityDataSource();
StreetComboBox.DataSource = GetStreetDataSource();
Address address = new Address();
CityComboBox.DataBindings.Add("SelectedItem", address, "City");
StreetComboBox.DataBindings.Add("SelectedItem", address, "Street");
Run Code Online (Sandbox Code Playgroud)

城市和街道数据库不完整,因此有时用户应将自定义值写入组合框.问题是 - 组合框数据绑定不允许将自定义值写入此组合框.这种行为有解决方法吗?
提前致谢!

c# data-binding combobox winforms

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