草庐IT

构造器

全部标签

c# - 构造函数或属性 : which one is the better choice while assigning values

在赋值时我们应该在属性上使用构造函数,反之亦然。 最佳答案 构造函数是一种非常方便且功能强大的契约类型-一种要求消费者在甚至可以使用您的对象之前提供某些信息的方法。因此,对于实例正常运行所必需的信息,请使用构造函数参数。这是依赖注入(inject)的基本概念-任何你依赖于完成你的工作的东西,都必须在你开始之前注入(inject)(提供)给你。属性可以代表一个有趣的问题。总的来说,经验告诉我,只要有可能,属性应该是只读的,对象通常应该尽可能在外部不可变。将公共(public)setter添加到属性会使您的类的复杂性成倍增加。当然总是有

c# - Ninject 传入构造函数值

使用Ninject,您如何配置内核以便我可以定义将哪些构造函数值传递到对象的实例化?我在模块中配置了以下内容:Bind().To().InSingletonScope().Named("LIVE");Bind().To().InSingletonScope().Named("LIVE").WithConstructorArgument("service1",Kernel.Get("LIVE"));Service2Impl采用IService1的构造函数参数,但我希望它来自容器。我还想命名绑定(bind),因为我的代码将在运行时针对不同的版本。这似乎可行,但这是实现我想做的事情的正确方法

c# - 为什么我可以在 C# 中实例化一个没有构造函数的类?

C#中的类怎么可能没有定义构造函数?例如我有一个类internalclassTextStyle{internalstringtext="";internalFontfont=newFont("Arial",8);internalColorcolor=Color.Black;}并且在代码中这个类被实例化为TextStyletextParameters=newTextStyle(); 最佳答案 如果您没有为非静态类声明任何构造函数,编译器会为您提供一个公共(public)(或抽象类的protected)无参数构造函数。你的类实际上有一个

c# - 如何在 C# 中调用 protected 构造函数?

如何调用protected构造函数?publicclassFoo{publicFoo(alotofarguments){}protectedFoo(){}}varfoo=???这显然没有通过测试:publicclassFooMock:Foo{}varfoo=newFooMock();Assert(typeof(Foo),foo.GetType()); 最佳答案 调用无参数保护/私有(private)构造函数:Foofoo=(Foo)Activator.CreateInstance(typeof(Foo),true);调用带参数的非公

c# - 依赖注入(inject)和其他构造函数参数 - 不好的做法?

目前我正在尝试使用依赖注入(inject)容器,这次是使用Unity。给定以下界面:publicinterfaceIPodcastCommService{voidDownload();voidUpload();}和以下实现:publicclassPodcastService{privateIPodcastCommServicecommservice;privateStringurl;publicPodcastService(Stringurl,IPodcastCommServicecommservice){this.commservice=commservice;this.url=ur

c# - 使用 Ninject 的具有多个参数的构造函数

我打算使用Ninject作为IoC容器,但无法理解如何创建在构造函数中具有多个参数的类的实例。基本上我在PCL库中有一个用于身份验证的服务接口(interface)及其在WP8项目中的实现,该项目在构造函数中接收消费者key、secret和baseAddress://OnPCLprojectpublicinterfaceIAuthorizationService{boolAuthenticate();}//OnWP8ProjectpubilcclassMyAuthenticator:IAuthorizationService{publicMyAuthenticator(stringco

c# - 如何使用反射获取构造函数作为 MethodInfo

构造函数如下所示:publicNameAndValue(stringname,stringvalue)我需要使用反射将其作为MethodInfo获取。它尝试了以下操作,但没有找到构造函数(GetMethod返回null)。MethodInfoconstructor=typeof(NameAndValue).GetMethod(".ctor",new[]{typeof(string),typeof(string)});我做错了什么? 最佳答案 Type.GetConstructor.请注意,这会返回一个ConstructorInfo而

c# - Ninject:将构造函数参数绑定(bind)到其他对象的属性

我有一个IConfig包含整个应用程序中使用的设置的对象。目前,我将整个对象注入(inject)到每个需要它的对象的构造函数中,如下所示:publicinterfaceIConfig{stringUsername{get;}stringPassword{get;}//...othersettings}publicclassFoo:IFoo{privatereadonlystringusername;privatereadonlystringpassword;publicFoo(IConfigconfig){this.username=config.Username;this.passw

c# - 无参数构造函数的第一个参数是什么?

我有这样一个简单的程序:publicclassFoo{publicFoo(){}publicintMyInt{get;set;}=10;publicListMyList{get;set;}=newList();}publicclassProgram{staticpublicvoidMain(){Console.WriteLine(newFoo().MyInt);Console.ReadLine();}}我决定查看此类程序的CIL代码(我对Foo的构造函数感兴趣)。这是它:.methodpublichidebysigspecialnamertspecialnameinstancevoid

c# - WPF 中的 Ninject 构造函数注入(inject)

是否可以使用ninject进行依赖项注入(inject),使结果类似于我可以在MVC中获得的注入(inject)。详细来说,如果我使用MVCninject适配器,我可以将我的WebController声明为具有构造函数参数,然后由ninject自动注入(inject)。但是,我还没有找到这样一个WPF的ninject扩展,它可以让我有一个这样的窗口:publicpartialclassMainWindow:Window{privatereadonlyIServiceinjectedService;publicMainWindow(IServiceinjectedService){thi