diff --git a/net/Conn.cs b/net/Conn.cs index 2ce1f84..22e9ed2 100644 --- a/net/Conn.cs +++ b/net/Conn.cs @@ -18,14 +18,35 @@ namespace lib } + public interface ISerDes where T : IFormatter + { + + T getInstance(); - public class Conn + + } + + + public class NewEveryCall : ISerDes where T : IFormatter, new() + { + public T getInstance() + { + return new T(); + } + } + + + public class Conn where T : IFormatter, new() + where TInst : ISerDes, new() { public Socket Sock { get { return m_socket; } } public Stream Stream { get { return m_streamNet; } } + private TInst m_formatter = new TInst(); + + public Conn( Socket sock, IProcess proc ) { m_socket = sock; @@ -46,7 +67,7 @@ namespace lib { object obj = null; - var formatter = new XmlFormatter2(); + var formatter = m_formatter.getInstance(); try {