我有 2 个完全独立的项目,一个在 vb 中,一个在 c# 中
项目 A - VB
项目 B - C#
我们有一个场景,项目 A 中的代码当前正在使用项目 B 中的代码,例如
项目A
Public Class SMS
Public Sub New()
End Sub
Public Function SendSMS() As String
Return "SMS Sent "
End Function
End Class
项目 B
using ProjectA;
public class Email
{
public string SendEmail()
{
return "Email Sent ";
}
public string SendEmail(SMS sms)
{
sms.SendSMS();
return "Email Sent ";
}
}
这工作正常但是我们现在需要从项目 A 发送一封电子邮件,这将创建一个循环引用在这里阅读大量帮助后,我创建了一个界面并在项目 a 中使用了该界面:
项目 C
Public Class Interface
Public Interface IEmail
Sub SendEmail()
End Interface
End Class
我已经在电子邮件上实现了界面并将项目 A更改为:
Public Function SendSMS(ByVal tEmail As IEmail) As String
tEmail.SendEmail()
Return "SMS Sent "
End Function
从我的用户界面可以正常工作,因为我可以实例化对象并且一切正常。但是我遇到了一个问题,我不想在 UI 中实例化对象,而是在项目 A
Public Sub SendSMSAndEMail()
Dim temail As New email
Me.SendSMS(temail)
End Sub
我遇到了真正的路障?我想我应该看一个工厂班,但我对如何最好地实现这一点感到困惑?
注意更多信息:
如果我们要再次设计系统,项目 A 和项目 B 将在同一个项目(和语言)中,这不会导致问题。事实上,我们有 2 个 UI 的一个控制台服务器应用程序和一个 Win 表单 UI。项目 B 最初用于控制台应用程序,并使用主要 Win 窗体应用程序使用的各种功能。现在出现了控制台应用程序中有我们需要从主应用程序中获得的代码,例如发送电子邮件的能力,但是代码很难从控制台应用程序中提取,因为它与主应用程序使用不同的语言应用。