public static IToManyIncludedResources Create(object fromResource, string fromRel, Type toResourceType, IEnumerable <object> toResourceCollection)
        {
            Contract.Requires(fromResource != null);
            Contract.Requires(String.IsNullOrWhiteSpace(fromRel));
            Contract.Requires(toResourceType != null);

            var fromResourceType        = fromResource.GetType();
            var toManyIncludedResources = new Internal.ToManyIncludedResources(fromResourceType, fromResource, fromRel, toResourceType, toResourceCollection);

            return(toManyIncludedResources);
        }
        public static IToManyIncludedResources <TFromResource, TToResource> Create <TFromResource, TToResource>(TFromResource fromResource, string fromRel, IEnumerable <TToResource> toResourceCollection)
            where TFromResource : class
            where TToResource : class
        {
            Contract.Requires(fromResource != null);
            Contract.Requires(String.IsNullOrWhiteSpace(fromRel));

            var fromResourceType        = typeof(TFromResource);
            var toResourceType          = typeof(TToResource);
            var toManyIncludedResources = new Internal.ToManyIncludedResources <TFromResource, TToResource>(fromResourceType, fromResource, fromRel, toResourceType, toResourceCollection);

            return(toManyIncludedResources);
        }