我正在用C#编写一个工厂模式的dll。工厂收到一个枚举并返回一个接口。根据接收到的枚举,它会创建不同的对象并将其返回封装在接口中。工厂内的任何类都实现了接口,其访问修饰符是内部的,除了自己的接口是公共的。通过接口访问不同的对象属性? C#
问题是当我从主项目调用dll时。在工厂内部创建的每个对象都有不同的属性,并不是为什么我无法从主中访问或修改这些属性。一些帮助?
这是来自主工厂的调用。
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);
}
}
第一,第二和第三个具有不同的属性,我不能够从接口对象修改它收到
谢谢。
您通过您的意思不能修改的属性?您需要分享您的代码,以便我们能够提供适当的解决方案。 –
使用接口的关键在于你有符合接口和代码的对象,它们能够平等对待它们。这听起来不像你这样的情况。 – Luaan
不好意思,我已经用代码示例编辑了这个问题。 – user462916