【发布时间】:2017-07-18 07:43:42
【问题描述】:
我正在用 C# 上的工厂模式编写一个 dll。工厂接收一个枚举并返回一个接口。根据接收到的枚举,它创建不同的对象并将其返回封装在接口中。工厂内的任何类都实现了该接口,并且它的访问修饰符是内部的,除了自己的接口是公共的。
问题是当我从主项目调用 dll 时。在工厂内创建的每个对象都有不同的属性,这不是我无法从主目录访问或修改这些属性的原因。有什么帮助吗?
这是来自 main 的 Factory 调用。
IConfigurator config = ConfigFactory.Instance.CreateConfigurator(Model.First);
这是工厂的工作方式(在 dll 中):
public IConfigurator CreateConfigurator(Model model)
{
switch (model)
{
case Model.First:
return (First)new First(model);
case Model.Second:
return (Second)new Second(model);
case Model.Third:
return (Third)new Third(model);
}
}
First、Second 和 Third 具有不同的属性,我无法从收到的接口对象修改它
谢谢。
【问题讨论】:
-
你的意思是你不能修改属性?您需要分享您的代码,以便我们能够提供适当的解决方案。
-
使用接口的全部意义在于您拥有符合接口的对象和平等对待它们的代码。听起来你不是这种情况。
-
对不起,我已经用代码示例编辑了问题。