C# 如何传递接口使其成为类对象并在另一个项目中使用其方法
我有以下情况: 我有一个项目“记录器” 它有一个名为“Log”的具体类 这个“日志”是从接口“Ilog”继承的,接口“Ilog”是从拥有所有接口的项目“Common”引用的 所以现在的解决方案看起来像 主溶液 -记录器(类库) -Log.csC# 如何传递接口使其成为类对象并在另一个项目中使用其方法,c#,oop,interface,C#,Oop,Interface,我有以下情况: 我有一个项目“记录器” 它有一个名为“Log”的具体类 这个“日志”是从接口“Ilog”继承的,接口“Ilog”是从拥有所有接口的项目“Common”引用的 所以现在的解决方案看起来像 主溶液 -记录器(类库) -Log.cs 公共(类库) ILog(接口) ICache(接口) 缓存(类库) Cache.cs(该类由ICache从公共项目继承 现在cache.cs还需要使用日志记录,我不想使用logger项目的引用,只需要使用公共项目引用并实现日志记录 请给出一些解
- 公共(类库)
- ILog(接口)
- ICache(接口)
- 缓存(类库)
- Cache.cs(该类由ICache从公共项目继承
只需使用它或在缓存类库中重新实现ILog。您可以使用IOC来解决此问题。通过使用IOC,您只引用
缓存
库中的公共
类库;但调用日志
类上的方法
您所需要做的就是创建一个容器;通过使用配置文件或编码将接口映射到对象;通过IOC解析对象
您可以参考Unity IOC的和。您可以使用IOC来解决此问题。通过使用IOC,您只能参考
缓存
库中的公共
类库;但可以调用日志
类中的方法
您所需要做的就是创建一个容器;通过使用配置文件或编码将接口映射到对象;通过IOC解析对象
您可以参考Unity IOC的和。您好,谢谢您的回答,但我应该在哪个项目中使用Unity框架?@rusty您应该在入口点注册类的接口。然后使用IOC容器解析所有其他对象。乍看起来可能没有意义;但如果您只参考它提供给您的链接,则可能会有意义你好,我试过你说的,但我的具体类在不同的项目(缓存)中,接口在不同的项目(公共)中。我将在我的应用程序中添加公共项目dll。如何在我的缓存应用程序中使用具体类。您需要将这两个dll添加到应用程序中;但在缓存项目中,仅引用公共项目,而不引用日志项目。例如,应用程序引用所有三个dll;缓存引用公共和日志引用也e common dll。缓存只知道日志dll的接口。在应用程序中创建一个unity容器,并将日志接口映射到日志类。然后使用容器解析缓存dll。您好,谢谢您的回答,但我应该在哪个项目中使用unity framework?@rusty您应该在e入口点。然后使用ioc容器解析所有其他对象。乍一看,这可能没有意义;但如果你只是参考链接,它可能会让你更好地理解。嗨,我尝试了你所说的,但我的具体类在不同的项目(缓存)中,接口在不同的项目(公共)中。我将在我的应用程序中添加公共项目dll。如何在我的缓存应用程序中使用具体类。您需要将这两个dll添加到应用程序中;但在缓存项目中,仅引用公共项目,而不引用日志项目。例如,应用程序引用所有三个dll;缓存引用公共和日志引用也e common dll。缓存只知道日志dll的接口。在应用程序中创建一个unity容器,并将日志接口映射到日志类。然后使用该容器解析缓存dll。虽然您可能实现了所需的功能,但我仍然认为这些类可以根据其使用者进行更好的设计../尽管您可能会实现您需要的功能,但我仍然认为这些类可以根据其消费者进行更好的设计/