Eventos con .NET Remoting
Hola, nuevamente regresando al blog, aqui invito a compartir una demo sobre como implementar eventos con .NET Remoting, lo hare en dos envios, y luego pasare a comentar el codigo.
Proyecto CommonAssembly
IOrder.cs
using
System;
using
System.Collections.Generic;
using
System.Text;
using
Entidades;
namespace
CommonAssembly
{
public interface IOrder
{
void Insertar(Person person,string sucursal);
void AddOnAgregarEvent(AgregarEventHandler handler);
void AddOnRemoveEvent(AgregarEventHandler handler);
List<Person> getPersons();
string getSucursalEnvio(string suc);
}
}
ArgumentosEventArgs.cs
using
System;
using
System.Collections.Generic;
using
System.Text;
using
Entidades;
namespace
CommonAssembly
{
public delegate void AgregarEventHandler(object o, ArgumentosEventArgs e);
[Serializable]
public class ArgumentosEventArgs:EventArgs
{
private Entidades.Person person;
private string sucursal;
public string Sucursal
{
get { return sucursal; }
}
public Entidades.Person Person
{
get { return person; }
}
public ArgumentosEventArgs(Entidades.Person m_person, string _sucursal)
{
person = m_person;
sucursal = _sucursal;
}
}
}
Proyecto OrdenBL
OrdenBL.cs
using
System;
using
System.Collections.Generic;
using
System.Text;
using
CommonAssembly;
using
Entidades;
using
DAPerson;
namespace
OrdenBL
{
public class Orden : MarshalByRefObject, IOrder
{
public event AgregarEventHandler AgregarEvento;
#region
IOrder Members
public void Insertar(Person person,string sucursal)
{
DALPerson dal = new DALPerson();
dal.SetDAPerson(person);
List<Person> pers = dal.GetDAPersons();
ArgumentosEventArgs e = new ArgumentosEventArgs(person, sucursal);
OnAgregarEvento(e);
}
public void AddOnAgregarEvent(AgregarEventHandler handler)
{
AgregarEvento += handler;
}
#endregion
private void OnAgregarEvento(ArgumentosEventArgs Argumentos)
{
if (AgregarEvento != null)
AgregarEvento(this, Argumentos);
}
#region
IOrder Members
public List<Person> getPersons()
{
return new DALPerson().GetDAPersons();
}
#endregion
#region
IOrder Members
public void AddOnRemoveEvent(AgregarEventHandler handler)
{
AgregarEvento -= handler;
}
#endregion
public override object InitializeLifetimeService()
{
return null;
}
#region
IOrder Members
public string getSucursalEnvio(string suc)
{
return suc;
}
#endregion
}
}