P
Pohihihi
This is a report from VSS newsgroup in hope of getting some more suggestions.
Thanks,
Po
-------------------------------------------
I guess I am not getting the whole picture here. How does this apply to the
condition when there is a cyclic reference for the binaries (dlls) in dotNet
!!
What I am thinking is that to use the real ProjectB object I will still need
to create a object from ProjectB for mapping in ProjectA, which again puts
me in loop.
Two interfaces can be made for 2 different project but still for mapping
unless I use dynamic assmebly invoke I do not see how we can do somethng
like following ---
// 1st physical binary (MyProject.Home.dll
namespace MyProject.Home
{
public class ProjectA: System.Windows.Forms.Form
{
public ProjectA()
{ // create object to use later}
public void MyProjA_Method()
{ // do something }
public void MyProjAMethodCallsProjBMethod()
{
int i = (new ProjectB()).CalBalls(5);
}
}
}
//2nd physical binary (MyProject.Work.dll
namespace MyProject.Work
{
public class ProjectB: System.Windows.Forms.Form
{
public void MyMethodInB()
{
ProjectA pA = new ProjectA();
pA.Show();
}
public int CalBalls(int i)
{// return some calculation as int}
}
}
Thanks,
Po
-------------------------------------------
I guess I am not getting the whole picture here. How does this apply to the
condition when there is a cyclic reference for the binaries (dlls) in dotNet
!!
What I am thinking is that to use the real ProjectB object I will still need
to create a object from ProjectB for mapping in ProjectA, which again puts
me in loop.
Two interfaces can be made for 2 different project but still for mapping
unless I use dynamic assmebly invoke I do not see how we can do somethng
like following ---
// 1st physical binary (MyProject.Home.dll
namespace MyProject.Home
{
public class ProjectA: System.Windows.Forms.Form
{
public ProjectA()
{ // create object to use later}
public void MyProjA_Method()
{ // do something }
public void MyProjAMethodCallsProjBMethod()
{
int i = (new ProjectB()).CalBalls(5);
}
}
}
//2nd physical binary (MyProject.Work.dll
namespace MyProject.Work
{
public class ProjectB: System.Windows.Forms.Form
{
public void MyMethodInB()
{
ProjectA pA = new ProjectA();
pA.Show();
}
public int CalBalls(int i)
{// return some calculation as int}
}
}
Jay B. Harlow said:Pohihihi,
Normally when I have two projects that need to refer to each other I use a
Separated Interface Pattern.
http://www.martinfowler.com/eaaCatalog/separatedInterface.html
Depending on the needs of the solution will decide if I use 2 or 3
projects
to implement the Separated Interface Pattern.
The "easiest" way is to put the interfaces in the first project, then
reference the first project from the second. Alternatively you can put the
interfaces in a project by themselves, and reference the interface project
from both of the other projects.
Something like:
' Project A
Public Interface InterfaceA
Sub SomeMethod()
End Interface
Public Class Something
Sub DoSomething(anA As InterfaceA)
anA.SomeMethod()
End Sub
End Class
' Project B
' references Project A
Public Class SomethingElse
Implements InterfaceA
Sub DoSomething()
Dim something As New Something
something.DoSomething(Me)
End Sub
Sub SomeMethod() Implements InterfaceA.SomeMethod
...
End Sub
End Class
--
Hope this helps
Jay [MVP - Outlook]
.NET Application Architect, Enthusiast, & Evangelist
T.S. Bradley - http://www.tsbradley.net
Hello,
I have 2 project A & B belonging to same solution. Now what I want is that
few forms I am accessing from A in B and few I am doing that other way
around. What should I do to not get the error while building solution, I
mean by the build sequencing.
Thanks,
Po