How about
:
using System;
using System.Collecti ons.Generic;
using System.Text;
namespace LimitedAccess
{
interface IData
{
int ClientInfo { get;set;}
int OrderInfo { get;set;}
}
interface IClient
{
int ClientInfo { get;}
}
interface IAdministrator
{
int ClientInfo { get;set;}
int OrderInfo { get;set;}
}
// not thread safe
class Data : IData
{
private int clientInfo = 0;
private int orderInfo = 0;
public Data(int clientInfo, int orderInfo) {
this.clientInfo = clientInfo;
this.orderInfo= orderInfo;
}
public int ClientInfo
{
get { return this.clientInfo ; }
set { this.clientInfo = value; }
}
public int OrderInfo
{
get { return this.orderInfo; }
set { this.orderInfo = value; }
}
}
class Client : IClient
{
private IData data = null;
//ASSERT data not null
public Client(IData data)
{
if (data == null) { throw new ArgumentExcepti on(); }
this.data = (Data)data;
}
public int ClientInfo
{
get { return data.ClientInfo ; }
}
class Administrator : IAdministrator
{
private IData data = null;
// ASSERT data not null
public Administrator(I Data data)
{
if (data == null) { throw new ArgumentExcepti on(); }
this.data = data;
}
public int ClientInfo
{
get
{
return data.ClientInfo ;
}
set
{
this.data.Clien tInfo = value;
}
}
public int OrderInfo
{
get { return this.data.Order Info; }
set { this.data.Order Info = value; }
}
static void Main(string[] args)
{
IData data= new Data(2,3);
Administrator adm = new Administrator(d ata);
Client c = new Client(data);
System.Console. WriteLine(adm.O rderInfo);
System.Console. WriteLine(c.Cli entInfo);
//System.Console. WriteLine(c.Ord erInfo); // error Client
does not contain a definition...
System.Console. ReadLine();
}
}
}
}
Regards,
Jeff
*** Sent via Developersdex
http://www.developersdex.com ***