C# 在位于外部库中的类上创建抽象
我正在处理的c#项目引用了驻留在外部类库中的“产品”具体类型。“Product”类不实现任何接口 我想在“产品”的基础上创建一个“IPProduct”接口,并使用此接口代码,这样我就可以针对接口而不是实现进行编程 由于我仍然希望继续使用“Product”类型,有什么好的模式可以让我的代码知道“Product”实现“ipproduct” 由于“产品”驻留在外部库中,所以我不能更改其声明(即Procut:ipproduct) 这个类也没有公共构造函数,所以我想扩展它不是一个选项 对于这种情况,什么是好的解决方案模式?包装纸C# 在位于外部库中的类上创建抽象,c#,C#,我正在处理的c#项目引用了驻留在外部类库中的“产品”具体类型。“Product”类不实现任何接口 我想在“产品”的基础上创建一个“IPProduct”接口,并使用此接口代码,这样我就可以针对接口而不是实现进行编程 由于我仍然希望继续使用“Product”类型,有什么好的模式可以让我的代码知道“Product”实现“ipproduct” 由于“产品”驻留在外部库中,所以我不能更改其声明(即Procut:ipproduct) 这个类也没有公共构造函数,所以我想扩展它不是一个选项 对于这种情况,什么是
谢谢。您可能需要使用适配器模式 因此,您可以这样做,如下所示:
public class Product
{
// Your Product Class
}
public class MyProduct : Product, IProduct
{
}
其中,MyProduct
类实现了接口,但也具有Product
类中可用的所有公共和受保护的方法/属性。这允许您在不修改产品的情况下扩展原始类
类,该类遵循打开/关闭原则
您可以在此处阅读更多信息:您已经讨论了以下类型:
Product
、Produt
、Prodcut
、proccut
、以及Procut
。这些都是不同的,还是意味着相同的?听起来你需要看看,如果产品没有公开公共构造函数,我可以这样做吗?只要产品类没有声明为密封的,你应该能够从itit派生它没有密封的,但我想如果它没有公共构造函数,我会得到错误“'Product'不包含接受0个参数的构造函数”。在我的示例中,产品没有其他公共构造函数重载。请检查产品是否有私有构造函数所有构造函数重载都是内部的。