‫۹ سال و ۴ ماه قبل، شنبه ۹ خرداد ۱۳۹۴، ساعت ۱۸:۰۳
- استثنای صادر شده مربوط است به یافت نشدن اسمبلی System.Web.Http. در لیست ارجاعات برنامه، این ارجاع را یافته و خاصیت copy to local آن‌را true کنید؛ چیزی شبیه به این مشکل
- همچنین اگر Solution شما چند پروژه‌ای است، احتمال دارد که قسمت‌های مختلف آن از اسمبلی‌های مشابهی، اما با نگارش‌های مختلفی استفاده می‌کنند. اگر این اسمبلی‌ها از طریق نیوگت اضافه شده‌اند، دستور ذیل را صادر کنید:
PM> Update-Package
اگر خیر، فایل‌های csproj را باید تک تک بررسی کنید و شماره نگارش‌های اسمبلی‌های مشابه را تطابق دهید.
- مطلب «به روز رسانی قسمت assemblyBinding فایل‌های config توسط NuGet» را هم مدنظر داشته باشید.  
‫۹ سال و ۴ ماه قبل، شنبه ۹ خرداد ۱۳۹۴، ساعت ۱۷:۳۲
من تنظیمات تزریق وابستگی مربوط به AutoMapper را در همان محل قرارگیری تزریق وابستگی Serviceها قرار داده ام و ObjectFactory به این شکل شد:
public static class WoObjectFactory
    {
        private static readonly Lazy<Container> ContainerBuilder =
           new Lazy<Container>(DefaultContainer, LazyThreadSafetyMode.ExecutionAndPublication);

        public static IContainer Container
        {
            get { return ContainerBuilder.Value; }
        }

        private static Container DefaultContainer()
        {
            
            var _container = new Container(x =>
            {
                var platformSpecificRegistry = PlatformAdapter.Resolve<IPlatformSpecificMapperRegistry>();
                platformSpecificRegistry.Initialize();

                x.For<ConfigurationStore>().Singleton().Use<ConfigurationStore>().Ctor<IEnumerable<IObjectMapper>>().Is(MapperRegistry.Mappers);
                x.For<IConfigurationProvider>().Use(ctx => ctx.GetInstance<ConfigurationStore>());
                x.For<IConfiguration>().Use(ctx => ctx.GetInstance<ConfigurationStore>());
                x.For<ITypeMapFactory>().Use<TypeMapFactory>();
                x.For<IMappingEngine>().Singleton().Use<MappingEngine>().SelectConstructor(() => new MappingEngine(null));

                x.For<IUnitOfWork>().HybridHttpOrThreadLocalScoped().Use(() => new WirelessOrganizationContext());

                x.Scan(scan =>
                {
                    scan.AssemblyContainingType<IDeviceService>();
                    scan.TheCallingAssembly();
                    scan.WithDefaultConventions();
                });
                x.Scan(scanner =>
                {
                    scanner.AssembliesFromApplicationBaseDirectory();

                    scanner.ConnectImplementationsToTypesClosing(typeof(ITypeConverter<,>))
                           .OnAddedPluginTypes(t => t.HybridHttpOrThreadLocalScoped());

                    scanner.ConnectImplementationsToTypesClosing(typeof(ValueResolver<,>))
                        .OnAddedPluginTypes(t => t.HybridHttpOrThreadLocalScoped());
                });

                x.Scan(scan =>
                {
                    scan.TheCallingAssembly();
                    scan.WithDefaultConventions();
                    scan.AddAllTypesOf<Profile>().NameBy(item => item.FullName);
                });

                

            });
            ConfigureAutoMapper(_container);
            return _container;
        }

        private static void ConfigureAutoMapper(IContainer container)
        {
            var configuration = container.TryGetInstance<IConfiguration>();
            if (configuration == null) return;
            //saying AutoMapper how to resolve services
            configuration.ConstructServicesUsing(container.GetInstance);
            foreach (var profile in container.GetAllInstances<Profile>())
            {
                configuration.AddProfile(profile);
            }
        }
    }
اما وقتی پروژه اجرا می‌شود اکسپشن زیر اتفاق می‌افتد، که البته بعد از اضافه کردن تنظیمات مربوط به تزریق وابستگی AutoMapper اتفاق افتاد، در این Value مربوط به ContainerBuilder  مقداری ندارد:

‫۹ سال و ۴ ماه قبل، شنبه ۹ خرداد ۱۳۹۴، ساعت ۱۶:۰۷
با سلام
راهی وجود داره که حین استفاده از Containstable تعیین کنیم که کلمات بصورت Case Sensitive   سرچ بشن یا خیر؟ علاوه بر اون، میشه عباراتی رو که شامل کلمه مورد جستجو هستند برگردوند؟ (با استفاده از مقداردهی عبارت در حال جستجو به شکل '"*name"' میشه startWith رو پیاده سازی کرد اما '"*name*"' بصورت Contains عمل نمی‌کنه)
‫۹ سال و ۴ ماه قبل، چهارشنبه ۶ خرداد ۱۳۹۴، ساعت ۲۰:۳۱
- محل تعریف نگاشت‌ها و کلاس‌های پروفایل، مهم نیست. چون اساسا هرجایی که قرار گیرند، دو وابستگی بیشتر نخواهند داشت: کلاس‌های مدل و کلاس‌های ViewModel.
- محل فراخوانی اولیه‌ی تعاریف نگاشت‌ها جهت معرفی آن‌ها به سیستم، مهم است.
+ اگر از کاربر اطلاعاتی را دریافت می‌کنید، در لایه UI هست که کار نگاشت اطلاعات دریافتی از کاربر و از ViewModelها به Modelهای اصلی برنامه انجام می‌شود (توسط متد Mapper.Map). اگر قرار است اطلاعاتی را بازگشت دهید، متدهای جدیدی مانند Project To بسیار بهینه‌تر هستند از روش قدیمی Mapper.Map و این متد را بهتر است در لایه سرویس استفاده کنید. متد Project To کارش بهینه سازی کوئری SQL ارسالی به سرور هست. اگر از روش Mapper.Map در لایه UI استفاده کنید، این قابلیت را از دست خواهید داد؛ چون Mapper.Map به معنای کار با اشیاء درون حافظه و LINQ to Objects است. کار متد ویژه‌ی Project To افزونه‌ای برای کار با Entity Framework و بهینه سازی آن است.
‫۹ سال و ۴ ماه قبل، چهارشنبه ۶ خرداد ۱۳۹۴، ساعت ۲۰:۱۲
ممنونم از پاسختون.
هدف من بیشتر از طرح این سوال این هست که در طراحی معماری پروژه و به طور خاص جایگاه Mapping در پروژه، بین دو مورد تصمیم گیری کنم:
۱- قرار دادن تعاریف Mapping و view modelها در لایه UI و استفاده از لایه سرویس (با خروجی Entity Model در هر تابع) 
۲- قراردادن تعاریف Mapping و view modelها هر کدام در یک پروژه مجزا و استفاده از آن در لایه سرویس، با این توضیح که خروجی متدها در لایه سرویس Viewmodel باشد
کدام یک از این موارد صحیح‌تر هست؟
‫۹ سال و ۴ ماه قبل، چهارشنبه ۶ خرداد ۱۳۹۴، ساعت ۱۹:۰۴
- «... صحیح‌ترین ...»  «... محل دیگری غیر از پروژهService ...»
این «مثال» اساسا یک پروژه بیشتر نبود؛ صرفا جهت نمایش مفهوم مورد بحث. در همین «مثال» تعاریف نگاشت‌ها داخل پوشه‌ی سرویس نیست.
در کل می‌توانید یک اسمبلی جداگانه برای آن درنظر بگیرید به نام مثلا AutoMapperConfig. تنها قسمت مهم آن، بارگذاری و خواندن این نگاشت‌ها در زمان آغاز برنامه است که در مثال جاری، اینکار توسط SmObjectFactory به صورت خودکار انجام می‌شود.

در کل هدف از اکثر مثال‌های این سایت یا سایت‌های مشابه دیگر، رساندن یک مفهوم است؛ نه ارائه‌ی یک راه حل جامع و مانع. همینقدر که مثال زده شده، عنوان مورد بحث را پوشش دهد، کافی است.
‫۹ سال و ۴ ماه قبل، چهارشنبه ۶ خرداد ۱۳۹۴، ساعت ۱۸:۵۰
سلام؛ محل صحیح قرار دادن Mappingها دقیقا کجای پروژه است؟ آیا مثال همین مطلب صحیح‌ترین محل قرار دادن Mappingها و AutoMapper است؟
در پروژه‌های مختلف و بعضی از مطالب همین وبسایت دیده‌ام که محل دیگری غیر از پروژه Service نیز برای قرار دادن Mappingها انتخاب می‌شود.
‫۹ سال و ۴ ماه قبل، دوشنبه ۲۸ اردیبهشت ۱۳۹۴، ساعت ۰۰:۵۰
اصل سخن بنده این است که با وجود ویو مدل ذکر متن اعتبار سنجی در خود Domain Class ضرورتی ندارد چون در نهایت ViewModel ما در View مورد استفاده قرار خواهد گرفت . من کل مطالبی که فرمودید را قبول دارم فقط اگر ذکر پیغام اعتبار سنجی‌ها  در Domain Class برای دست یابی به  هدف مقاله ذکر شده باشد وگر نه چه ضرورتی دارد پیغام خطا را در مدلی که در ویو استفاده نخواهد شد ذکر کنیم . 
با تشکر