using System; using System.Collections.Generic; namespace ZeroLevel.Services.ObjectMapping { public interface IMapper { IEnumerable<string> MemberNames { get; } IMemberInfo this[string name] { get; } IEnumerable<IMemberInfo> Members { get; } Type EntityType { get; } void TraversalMembers(Action<IMemberInfo> callback); void TraversalMembers(Func<IMemberInfo, bool> callback); void SetTypeConverter(Func<IMemberInfo, object, object> converter); bool Exists(string name); void Set(object instance, string name, object value); object Get(object instance, string name); T Get<T>(object instance, string name); T GetOrDefault<T>(object instance, string name, T defaultValue); object GetOrDefault(object instance, string name, object defaultValue); } }