Make class C a private nested class inside class.
Here is an example program:
public interface IMyInterface
{
string DoSomething();
}
public class MyClassA
{
public static void Main()
{
MyClassA a = new MyClassA();
Console.WriteLine(a.DoSomethingInMyClassC());
Console.ReadLine();
}
public string DoSomethingInMyClassC()
{
MyClassB b = new MyClassB();
return b.GetAccessToMyClassC().DoSomething();
}
}
public class MyClassB
{
// MyClassC is private and only MyClassB can access it.
private class MyClassC : IMyInterface
{
public string DoSomething()
{
return "You are doing something in MyClassC!";
}
}
// MyClassB can create a new instance of MyClassC and return its
interface.
public IMyInterface GetAccessToMyClassC()
{
return new MyClassC();
}
}
Hope this helps.
--
Brian Delahunty
Ireland
http://briandela.com/blog
INDA SouthEast -
http://southeast.developers.ie/ - The .NET usergroup I
started in the southeast of Ireland.