小编Stu*_*art的帖子

Ninject 2.0 Constructor参数 - 如何设置默认构造函数何时出现?

我是IOC容器的新手并且学习Ninject.我使用的是从Github新下载的2.0版本.

我正在尝试在默认构造函数也存在时在构造函数上设置字符串参数.我一直在逐步完成Ninject源代码,但我对用于轻松查明我缺少的模式的模式不够熟悉.

这是我的测试控制台应用程序:

        static void Main(string[] args)
        {
        IKernel kernel = new StandardKernel();
        kernel.Bind<ITestClass>().To<TestClass>()
            .WithConstructorArgument("message", "Hello World!");

        var testClass = kernel.Get<ITestClass>();

        // Does not work either:
        //var testClass = kernel.Get<ITestClass>(new ConstructorArgument("message", "Hello World!"));

        testClass.DisplayMessage();
        Console.ReadLine();
        }
    }

public interface ITestClass
    {
    void DisplayMessage();
    }

public class TestClass : ITestClass
    {
    public TestClass()
        {
        this.message = "Wrong message :(";
        }

    private string message;
    public TestClass(string message)
        {
        this.message = message;
        }

    public void DisplayMessage()
        {
        Console.WriteLine(this.message);
        }
Run Code Online (Sandbox Code Playgroud)

代码在控制台上打印"错误信息:(".如果我删除了TestClass中的默认构造函数,我会得到"Hello World!".我在这里缺少什么?

澄清:我希望班级打印"Hello World!" …

c# constructor dependency-injection ninject ioc-container

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

在C#中从fullname字符串中分隔firstname和lastname

我正在进行网站迁移,涉及从fullname中提取firstname和lastname.鉴于这些是由最终用户创建的,存在各种排列(尽管英语并且通常不太奇怪).大多数情况下,我可以将第一个单词作为名字,将最后一个单词作为姓氏,但偶尔使用前缀和后缀.在浏览数据并试图了解所有可能的异常时,我意识到这是一个至少部分解决过很多次的常见问题.

在重新发明轮子之前,是否有人有任何适用于他们的正则表达式或有用的代码?性能不是考虑因素,因为这是一次性的实用程序.

要处理的典型值:

Jason Briggs,JD Smith,John Y Citizen,J Scott Myers,Bill Jackobson III,John Mills先生


更新:虽然是常见问题,但典型的解决方案似乎涉及处理大多数情况并手动清理其余情况.

(鉴于必须经历此问题的频率,我原本希望找到一个实用程序库,但无法在Google上找到一个实用程序库)

c# regex string

7
推荐指数
3
解决办法
5193
查看次数

访问Roslyn REPL中的.config文件

使用2012年6月Roslyn CTP:

有没有办法为正在探索的代码提供带有.config文件的Roslyn C#Interactive/REPL?一个简单的示例场景是代码,它依赖于通常从app.config/web.config获取的连接字符串.

c# roslyn

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

如何在LINQ子查询中处理Null?

我有一个子查询,它返回子表中的最新值.在某些情况下,子查询不返回任何内容.下面的查询在运行时失败,因为MemberPrice的推断类型是十进制且不可为空.

简化查询:

Dim q = From s In dc.STOCKs _
        Select s.ID, MemberPrice = _
          (From mp In dc.STOCKPRICEs Where mp.NUMBER = s.NUMBER _
          Order By dc.date Descending _
          Select mp.PRICE).FirstOrDefault
Run Code Online (Sandbox Code Playgroud)

在SQL中,子查询将包含Top(1)并在空时返回Null.我怎样才能在LINQ中处理这个问题?有没有办法让MemberPrice可以为空,或者如果找不到则将值默认为零(或更优雅的解决方案)?

非常感谢,斯图尔特

linq vb.net null linq-to-sql

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