Url: C:\Users\Morteza\Downloads\ExplorerPCalV.1.1\Bin\ExplorerPCal.exe -> ExplorerPCal, Version=1.1.0.0, Culture=neutral, PublicKeyToken=a55a2614eb2aee77 Caller: ExplorerPCal.App -> appDispatcherUnhandledException Exception classes: System.NullReferenceException System.Reflection.TargetInvocationException System.Reflection.TargetInvocationException Exception messages: Object reference not set to an instance of an object. Exception has been thrown by the target of an invocation. Exception has been thrown by the target of an invocation. Stack Traces: at ExplorerPCal.Utils.ConfigSetGet.GetConfigData(String key)
تزریق خودکار وابستگیها در برنامههای ASP.NET MVC
در پروژهی ثالث یاد شده، در کلاس IoC آن، کار <AddRegistry<DefaultRegistry انجام شدهاست و اگر در برنامهی شما IoC.Initialize فراخوانی نشود، کلاس DefaultRegistry جایی استفاده نخواهد شد و پس از آن پیام یافت نشدن تنظیمات را دریافت میکنید.
همچنین این کتابخانه از Microsoft.Web.Infrastructure.DynamicModuleHelper برای کارهای Service locator استفاده کردهاست. به عبارتی اگر در حالت عادی جواب میگیرید (مثلا تزریق وابستگی در کنترلرها درست کار میکنند) اما با فراخوانی ObjectFactory مشکل دارید، از این جهت است که DefaultRegistry آن اصلا به ObjectFactory معرفی نشدهاست. اما DefaultRegistry و خروجی IoC.Initialize آن به صورت محدود در اختیار ماژولهای این کتابخانه قرار گرفتهاند.
- در کل روشی که در مطلب جاری عنوان شده، بررسی زیر ساخت این ابزارها است و با MVC 5 هم کار میکند. با 3 و 4 هم کار میکند.
تزریق وابستگیها
سلام و درود بر شما آقای نصیری
من چون توی دات نت تازه کار هستم دوتا سئوال خدمتتون دارم:
من توی برنامه ای که دارم مینویسم از الگوی UnitOfWork مطابق با آموزشهای شما استفاده کردم درضمن برای تزریق وابستگی هم از StructerMap استفاده میکنم، برنامه Win Form هستش وتوی Main یک کلاس Configuration رو که کارش Registerکردن کلیهInterface وکلاس هاست رو فراخونی کردم.
اول اینکه : برای آزاد سازی منابع و استفاده بهینه از حافظه در حال استفاده از StructerMap شما چه پیشنهاد یا روشی رو معرفی میکنین؟
دوم اینکه : با ازدیاد و تعدد کلاسها واینترفیسها در حالیکه در ابتدای برنامه کلیه اونها رو با StructerMap رجیستر میکنیم ودر هرجا که لازم باشه فقط از اونها یک نمونه میسازیم، اشکالی در روند عملیاتی وکاربری با اون نرم افزار پیش مشتری پیش نمییاد؟ (مخصوصا در سیستمهای یکپارچه و بزرگ از نظر حافظه).
سوم اینکه: آیا بایدها ونبایدهایی هم در استفاده از StructerMap وجود داره ؟
سپاسگزار شما هستم.
protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<Blog>() .HasData(new Blog { BlogId = 1, Url = "http://sample.com" }); }
modelBuilder.Entity<Post>().HasData( new {BlogId = 1, PostId = 1, Title = "First post", Content = "Test 1"}, new {BlogId = 1, PostId = 2, Title = "Second post", Content = "Test 2"});
نوعهای نال نپذیر در TypeScript
در نگارش 2.7 اگر یک چنین تعریفی را داشته باشید:
export class MovieComponent { @Input() movie: Movie; }
Error! Property movie has no initializer and is not assigned directly in the constructor.
@Input() movie: Movie | null = null;
class C { baz: boolean | undefined; }
class C { bar = "hello"; }
class C { foo!: number; ngOnInit() { this.foo = 0; } }
مشاهده فرم ویرایش | SampleController:Edit | ✓ |
مشاهده محتویات دراپ دان | SampleController:GetData | ✓ |
وب سایت بر پایه MVC 5 ساخته شده. روشی که خودم در نظر دارم، یک جدول در بانک اطلاعاتی هست که شامل یک سری فیلد مانند IP و User-Agent و تاریخ و ساعت و ...
به ازای هر کاربر یک رکورد اضافه بشه در دیتابیس. ولی به صورتی باشه که فقط یکبار اضافه بشه در یک مدت زمان محدود. یعنی به ازای هر Request که از یک کاربر مشخص ارسال میشه نیاد پشته سر هم هی رکورد درج کنه و به قول معروف با Refresh کردن هی رکورد ثبت بشه توی دیتابیس.
Session_Start در فایل Global گزینهی خوبی هست برای اینکار ولی در وب سایت از Session استفاده نمیکنم و غیر فعالش کردم در وب کانفیگ، بنابراین جوابگو نیست.
ممنون میشم اگر بتونید راهنمایی کنید.
private static bool _isPreGeneratedViewCacheSet; private void InitializationPreGeneratedViews() { if (_isPreGeneratedViewCacheSet) return; var precompiledViewsFilePath = new FileInfo(Assembly.GetExecutingAssembly().Location).DirectoryName + @”\EF6PrecompiledViews.xml”; InteractiveViews.SetViewCacheFactory(this, new FileViewCacheFactory(precompiledViewsFilePath)); _isPreGeneratedViewCacheSet = true; }
InteractiveViews .SetViewCacheFactory(ctx, new FileViewCacheFactory(new FileInfo(Assembly.GetExecutingAssembly().Location).DirectoryName + @"\EF6PrecompiledViews.xml"));