Questions tagged «interface-design»

5
是否存在用于初始化通过DI容器创建的对象的模式
我试图让Unity来管理对象的创建,并且我想拥有一些直到运行时才知道的初始化参数: 目前,我唯一想到的方法是在接口上使用Init方法。 interface IMyIntf { void Initialize(string runTimeParam); string RunTimeParam { get; } } 然后要使用它(在Unity中),我会这样做: var IMyIntf = unityContainer.Resolve<IMyIntf>(); IMyIntf.Initialize("somevalue"); 在这种情况下,runTimeParam将在运行时根据用户输入确定参数。此处的普通情况只是返回的值,runTimeParam但实际上,参数将类似于文件名,而initialize方法将对文件进行处理。 这会产生许多问题,即该Initialize方法在界面上可用并且可以多次调用。在实现中设置标志并在重复调用时引发异常Initialize似乎很麻烦。 在我解析界面的那一刻,我不想了解任何有关的实现IMyIntf。不过,我真正想要的是该接口需要某些一次性初始化参数的知识。有没有一种方法可以用此信息注释(属性?)接口,并在创建对象时将其传递给框架? 编辑:描述了更多界面。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.