‫۸ سال و ۱ ماه قبل، پنجشنبه ۱۱ شهریور ۱۳۹۵، ساعت ۰۰:۳۷
ممنون از پاسختون؛
اتفاق عجیبی رخ میده که متوجه نمیشم ؛ کلاسهای ViewModel در پروژه سرویس تعریف شدن  و از داخل سرویس خروجی را  مپ میکنم و بازگشت میدم.
به این صورتی که فرمودید عمل کردم؛ حالا عمل نگاشت و مپ در سرویس به درستی عمل میکنه ولی عمل نگاشت و مپ داخل کنترلها که داخل پروژه وب هستند دیگر کار نمیکند قبل از اینکه این کارو بکنم دقیقا عکس  این اتفاق رخ میداد یعنی عمل مپ در پروژه وب و کنترلها به درستی انجام میشد ولی در داخل سرویس با خطا مواجه میشد. به نظر میرسه فقط عملیات مپ اسمبلی که معرفی شده به درستی کار میکند!
تنظیمات تزریق وابستگی اتومپر داخل پروژه MVC انجام میشه و در پروژه سرویس و کنترل های MVC  مپر تزریق میشه. با سپاس.
‫۸ سال و ۱ ماه قبل، سه‌شنبه ۹ شهریور ۱۳۹۵، ساعت ۲۱:۴۹
ممنون از پاسختون؛ تنظیمات رجیستری مربوط به اتومپر من به این صورته: 
public class AutomapperRegistry : Registry
    {
        public AutomapperRegistry()
        {
            For<MapperConfiguration>().Use("", ctx =>
            {
                var config = new MapperConfiguration(cfg =>
                {
                    AutomapperConfig.setup(cfg, ctx);
                });

                config.AssertConfigurationIsValid();
                
                return config;

            }).Singleton();

            For<IMapper>()
                .HttpContextScoped()
                .Use(ctx => 
                    ctx.GetInstance<MapperConfiguration>().CreateMapper(ctx.GetInstance));
        }
        
    }
همانطور که ملاحظه میکنید تنها یک وهله از کلاس MapperConfiguration  به صورت  Singleton تهیه  و از آن برای تهیه وهله از  IMapper 
استفاده میشه و برای تنظیمات مپ از متدهای استاتیک آن استفاده نمیکنم و به این صورته:
public static class AutomapperConfig
    {
        public static void setup(IMapperConfigurationExpression mappconfig, IContext ctx)
        {
            configureAutoMapper(mappconfig, ctx);
        }

        private static void configureAutoMapper(IMapperConfigurationExpression mappconfig, IContext ctx)
        {
            var profiles = ctx.GetAllInstances<AutoMapper.Profile>().ToList();
            foreach (var profile in profiles)
            {
                mappconfig.AddProfile(profile);
            }

            var types = Assembly.GetExecutingAssembly().GetExportedTypes();

            LoadStandardMappings(types, mappconfig);

            LoadCustomMappings(types, mappconfig);
        }

        private static void LoadStandardMappings(IEnumerable<Type> types, IMapperConfigurationExpression mapper)
        {
            var maps = (from t in types
                        from i in t.GetInterfaces()
                        where i.IsGenericType && i.GetGenericTypeDefinition() == typeof(IMapFrom<>) && !t.IsAbstract && !t.IsInterface
                        select new
                        {
                            Source = i.GetGenericArguments()[0],
                            Destination = t
                        }).ToArray();

            foreach (var map in maps)
            {
                mapper.CreateMap(map.Source, map.Destination);
            }
        }

        private static void LoadCustomMappings(IEnumerable<Type> types, IMapperConfigurationExpression mapper)
        {
            var maps = (from t in types
                        from i in t.GetInterfaces()
                        where typeof(IHaveCustomMappings).IsAssignableFrom(t) && !t.IsAbstract && !t.IsInterface
                        select (IHaveCustomMappings)Activator.CreateInstance(t)).ToArray();

            foreach (var map in maps)
            {
                map.CreateMappings(mapper);
            }
        }
    }
اگه جایی اشتباه کردم ممنون میشم راهنمایی کنید.
‫۸ سال و ۱ ماه قبل، سه‌شنبه ۹ شهریور ۱۳۹۵، ساعت ۱۵:۳۹
با سلام؛ من از استراکچرمپ 3 و اتومپر 5 استفاده میکنم، وقتی میخوام از امکان ProjectTo اتومپر استفاده کنم پیغام خطای زیر رو دریافت میکنم
 _contacts.ProjectTo<ContactViewModel>(_mapper.ConfigurationProvider).ToList();

 Mapper not initialized. Call Initialize with appropriate configuration
ولی اگر به صورت عادی مثلا به این صورت مپ کنم خطایی رخ نمیده
 _mapper.Map<ContactViewModel>(contact);
اگه تنظیم مپ رو به صورت دستی مپ کنم درست کار میکنه
 cfg.CreateMap<Contact, ContactViewModel>();
شاید به جای استفاده از دستور
 Mapper.CreateMap(map.Source, map.Destination);
از متد جنریکش استفاده کنیم درست بشه
 Mapper.CreateMap<map.Source, map.Destination>();
‫۸ سال و ۲ ماه قبل، پنجشنبه ۷ مرداد ۱۳۹۵، ساعت ۰۰:۱۴
بله درسته پلاگینها به تمام مدل‌های برنامه دسترسی دارند ولی به امکانات ماژول‌های دیگر دسترسی ندارند و نمیتوانند از امکانات ماژول‌های دیگر استفاده ببرند فرض کنید کاربر داخل صفحه پلاگین اشخاص است و از همینجا میخواهد به یکی از اشخاص پیامک بدهد با کلیک  روی گزینه ارسال پیامک طبیعتا باید پنجره ارسال پیامک که داخل پلاگین پیامک است باز شود و بقیه مراحل در حقیقت منظورم ارتباط بین پلاگین‌های مختلف برنامه است با سپاس.
‫۸ سال و ۲ ماه قبل، چهارشنبه ۶ مرداد ۱۳۹۵، ساعت ۲۳:۳۰
با سلام ؛ فرض کنید سیستمی قرار است طراحی کنیم که شامل ماژول یا پلاگین پیامک و ماژول اشخاص می‌باشد و این دو ماژول کاملا از هم مستقل هستند؛ یکی از امکاناتی که میخواهیم به سیستم اضافه کنیم امکال ارسال پیامک به اشخاص از طریق ماژول پیامک می‌باشد؛ حال با توجه به این معماری که پلاگینها از همدیگر جدا عمل میکنند و اینکه پلاگینها از همدیگر هیچ اطلاعی ندارند چطور باید این کار را انجام دهیم. با سپاس.
‫۸ سال و ۲ ماه قبل، جمعه ۲۵ تیر ۱۳۹۵، ساعت ۰۷:۱۵
سلام؛ بعد از توزیع تمپلت‌های برنامه با گالپ تمامی دایرکتیوهای انگولارجی اس به حروف کوچک تبدیل می‌شوند.برای مثال ngFor* به ngfor* تبدیل میشه. وقتی مرحله مینی فای کردن تمپلت‌ها رو غیرفعال کردم مشکل حل شد!
gulp.task("templates", function () {
    return gulp.src(appFolder + "/**/*.html")
        //.pipe(minifyHTML())
        .pipe(gulp.dest(outFolder + "/app"));
});