C# 在项目之间传递信息而不相互引用

C# 在项目之间传递信息而不相互引用,c#,windows-runtime,windows-store-apps,windows-phone-8.1,portable-class-library,C#,Windows Runtime,Windows Store Apps,Windows Phone 8.1,Portable Class Library,我有三个项目的解决方案,BackgroundTasks是一个Windows运行时项目,SecondaryProject,它是一个类库,MainProject,它也是一个类库。BackgroundTasks负责接收推送通知,因此由系统注册。我知道,如果背景任务和第二个ArpyRoject之间没有任何联系,当收到通知时,第二个项目不存在,因为没有任何东西可以创建它的实例,因为没有应用程序的实例。 现在有一个棘手的问题,当我收到PushNotification时,我想过滤它,所以我想做的是以某种方式将

我有三个项目的解决方案,BackgroundTasks是一个Windows运行时项目,SecondaryProject,它是一个类库,MainProject,它也是一个类库。BackgroundTasks负责接收推送通知,因此由系统注册。我知道,如果背景任务第二个ArpyRoject之间没有任何联系,当收到通知时,第二个项目不存在,因为没有任何东西可以创建它的实例,因为没有应用程序的实例。

现在有一个棘手的问题,当我收到PushNotification时,我想过滤它,所以我想做的是以某种方式将它传递给第二个项目,这样它就可以验证通知信息,并根据结果返回一个值,如
int
字符串
。这里的问题是,我不能添加第二个项目作为对我的背景任务的引用,因为该项目已经在MainProject中被引用,并且具有我不希望对背景任务项目可用的公共方法。

我已经用接口和抽象类进行了测试,但问题是我的BackgroundTasks是一个Windows运行时项目,因此我使用接口的能力非常有限。


总之,对于三个项目(ABC),其中C引用了B,而A不能引用B,因为其中的公共方法应该只适用于C,我该怎么办,再次将内容从A传递到B和从B传递到A

使用接口定义类的视图,这些视图只包含相关信息。将接口放在一个公共项目中,其他所有接口都可以引用该项目。您可以通过项目之间的接口传递值。您是否考虑过重新构造和使用受保护的内部访问修饰符?尽管如此,我有一些方法需要从项目B到C公开。如果我将B中的所有内容都作为内部内容进行维护,我必须创建一个特定于项目A的受保护内部访问修饰符,以及一个特定于项目C的受保护内部访问修饰符,对的