Skip to content

Instantly share code, notes, and snippets.

View jesuscampos's full-sized avatar
🏠
Working from home

Jesús jesuscampos

🏠
Working from home
View GitHub Profile
@jesuscampos
jesuscampos / .cs
Last active December 9, 2017 13:56
// Registramos el tipo en el contenedor
container.RegisterType<IRepositorioPedidos, RepositorioPedidos>();
// Resolvemos usando Lazy<T>
var objetoLazy = container.Resolve<Lazy<IRepositorioPedidos>>();
// Al usar el objeto por primera vez mediante la propiedad Value se crerá la instancia
var miObjeto = objetoLazy.Value;
// Carga diferida (activada en Entity Framework por defecto)
MyContext myContext = new MyContext();
IList<Cliente> clientes = myContext.Clientes.ToList();
IList<Pedido> pedidos = clientes.FirstOrDefault().Pedidos.ToList();
public sealed class Singleton
{
private static readonly Lazy<Singleton> lazy =
new Lazy<Singleton>(() => new Singleton());
public static Singleton Instance { get { return lazy.Value; } }
private Singleton()
{
}
@jesuscampos
jesuscampos / .cs
Last active December 8, 2017 14:25
public sealed class Singleton
{
private static Singleton instance = null;
private Singleton()
{
}
public static Singleton Instance
{
private Pedidos _pedidos;
public Pedidos MisPedidos
{
get
{
if (_pedidos == null)
{
_pedidos = new Pedidos();
}
return _pedidos;
@jesuscampos
jesuscampos / .cs
Last active December 7, 2017 16:31
class Cliente
{
private Lazy<Pedidos> _pedidos;
public Pedidos MisPedidos
{
get
{
return _pedidos.Value;
}
}
@jesuscampos
jesuscampos / .cs
Last active December 9, 2017 13:08
Cliente cliente = context.Clientes.Where(c => c.IdCliente == 1);
//...
// Primer acceso. Se creará la instancia
cliente.MisPedidos.FirstOrDefault().Enviar();
// ...
// Siguientes accesos. Se devuelve la misma instancia
cliente.MisPedidos.Where(p => p.IdPedido == 150);
Lazy<Pedidos> pedidos = new Lazy<Pedidos>(() => new Pedidos(idCliente));
Lazy<Pedidos> pedidos = new Lazy<Pedidos>();
public class AlineamientoAttribute : Attribute
{
public Alineamiento Alineamiento { get; set; }
public AlineamientoAttribute(Alineamiento alineamiento)
{
this.Alineamiento = alineamiento;
}
}