我有2個完全獨立的項目之一,VB和一個在C#正與2獨立的項目,C#和VB
項目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
我都創下了實際道路塊bject?我想我應該看看一個工廠班,但我對如何最好地實現這一點感到困惑?
N.B進一步信息:
如果我們設計系統再次項目A和項目B將在同一項目(和語言),這會不會造成問題。因爲它是我們有2 UI的一個控制檯服務器應用程序和一個Win窗體UI。項目B最初用於控制檯應用程序,並使用主Win表單應用程序使用的各種功能。現在出現了我們在主應用程序中需要控制檯應用程序中的代碼,例如發送電子郵件的功能,但是代碼難以從控制檯應用程序中提取,因爲它與主要應用程序的語言不同應用。
爲什麼要首先在項目A中實例化對象? – Fendy
我們需要發送的SMS消息的電子郵件混淆。 SMS消息的當前發送過程在項目A中處理(爲簡單起見未顯示?您是否可以建議另一種方法? –