C# 是还是不是?我可以在不同的程序集中划分接口和实现类吗?

C# 是还是不是?我可以在不同的程序集中划分接口和实现类吗?,c#,vb.net,class,interface,assemblies,C#,Vb.net,Class,Interface,Assemblies,我是编程新手,但我正在尽全力学习 我有一个应用程序,我必须将IView注入我的ViewModel。这意味着IView接口应该位于ViewModel程序集中,而不是视图程序集中,否则我会破坏MVVM规则,将引用从VM添加到视图程序集中 所以我的问题是:在两个不同的程序集中划分接口和实现类是荒谬的,还是这是正确的方法 非常感谢大家 在两个不同的程序集中划分接口和实现类是否荒谬 不,这很常见。例如,当类实现INotifyPropertyChanged时,这种情况已经发生 在WCF中,(建议)将服务接口

我是编程新手,但我正在尽全力学习

我有一个应用程序,我必须将IView注入我的ViewModel。这意味着IView接口应该位于ViewModel程序集中,而不是视图程序集中,否则我会破坏MVVM规则,将引用从VM添加到视图程序集中

所以我的问题是:在两个不同的程序集中划分接口和实现类是荒谬的,还是这是正确的方法

非常感谢大家

在两个不同的程序集中划分接口和实现类是否荒谬

不,这很常见。例如,当类实现INotifyPropertyChanged时,这种情况已经发生

在WCF中,(建议)将服务接口放在单独的程序集中(即只包含接口的程序集中)。

这正是服务接口所包含的内容。为了与系统交互而实现的一组接口。这就是某些工件(即)的实现方式。所以这并不荒谬


我看到你在问号上加了两种语言,你在.NET上获得了另一个优势。你可以用一种语言声明你的接口,然后用另一种语言实现它们。

我想你说的是用C语言编程。是的,vb.net或C语言,可以吗?好的!非常感谢您的回答!将接口放置在不同的程序集中通常是为了将接口与实现分离。优点是您可以更改实现(通常经常更改),而更“稳定”的接口保持不变。因此,您可以拥有同一组接口的多个实现,而不需要相互了解(或关心)。这是一个设计示例。