سلام
از دیتابیس  redis  بجای کش دات نت استفاده کردم ولی وقتی اطلاعات رو از redis میگیریم بصورت json است ، پیشنهاد میکنید چگونه json را به type خروجی متد cast کنم ؟
‫۵ سال و ۸ ماه قبل، چهارشنبه ۱۹ دی ۱۳۹۷، ساعت ۰۴:۳۳
نکته تکمیلی
 
تکه کد داخل بدنه foreach را می‌توان با استفاده از  کتابخانه Scrutor به شکل زیر بازنویسی کرد:
services.Decorate(descriptor.ServiceType, (target, serviceProvider) =>
    proxyGenerator.CreateInterfaceProxyWithTargetInterface(descriptor.ServiceType, target,
        serviceProvider.GetService<LoggingInterceptor>()));
مطلب تکمیلی
‫۵ سال و ۸ ماه قبل، چهارشنبه ۱۹ دی ۱۳۹۷، ساعت ۰۴:۰۷
استفاده از AOP Interceptor‌ها در برنامه‌های  NET Core. با استفاده از IoC Container توکار 

اگر بخواهیم Container مثال مطلب جاری را با IoC Container توکار NET Core. تعویض کنیم به کدهای زیر خواهیم رسید:
var descriptors = services.ToList();
var proxyGenerator = new ProxyGenerator();

foreach (var descriptor in descriptors)
{
    var serviceInterfaceType = descriptor.ServiceType;
    services.Replace(ServiceDescriptor.Describe(descriptor.ServiceType,
        provider => proxyGenerator.CreateInterfaceProxyWithTargetInterface(descriptor.ServiceType,
            provider.GetInstance(descriptor),
            new LoggingInterceptor()),
        descriptor.Lifetime));
}
 با پیمایش لیست ServiceDescriptor‌های رجیستر شده در Container، به ازای تک تک سرویس‌های موجود، کار تعویض Descriptor متناظر با آن را انجام می‌دهیم. برای این منظور یک implementationFactory را با استفاده از ProxyGenerator به شکل زیر می‌توان ایجاد کرد:
 provider => proxyGenerator.CreateInterfaceProxyWithTargetInterface(descriptor.ServiceType,
            provider.GetInstance(descriptor),
            new LoggingInterceptor())
در اینجا برای مهیا کردن شی target مورد نیاز ProxyGenerator، از متد الحاقی provider.GetInstance استفاده شده است که به شکل زیر پیاده سازی شده است:
public static object GetInstance(this IServiceProvider provider, ServiceDescriptor descriptor)
{
    if (descriptor.ImplementationInstance != null)
    {
        return descriptor.ImplementationInstance;
    }

    if (descriptor.ImplementationType != null)
    {
        return provider.GetServiceOrCreateInstance(descriptor.ImplementationType);
    }

    return descriptor.ImplementationFactory(provider);
}

private static object GetServiceOrCreateInstance(this IServiceProvider provider, Type type)
{
    return ActivatorUtilities.GetServiceOrCreateInstance(provider, type);
}
در تکه کد بالا، با بررسی ‏ImplementationInstance، ‏ImplementationType و ImplementationFactory متناظر با ServiceDescriptor مورد نظر، کار دریافت یا ایجاد وهله‌ی متناظر با ServiceType انجام می‌شود.  
‫۶ سال و ۴ ماه قبل، دوشنبه ۱۰ اردیبهشت ۱۳۹۷، ساعت ۱۶:۲۱
EF Core 2.1 به همراه بسته‌ی Microsoft.EntityFrameworkCore.Proxies است که پیاده سازی Lazy loading را میسر کرده‌است و از Castel.Core هم استفاده می‌کند (یا همان Castle DynamicProxy که در دوره جاری مورد بررسی قرار گرفته‌است). 
‫۶ سال و ۴ ماه قبل، دوشنبه ۱۰ اردیبهشت ۱۳۹۷، ساعت ۱۵:۵۷
راهکاری برای پیاده سازی این دوره در ASP.NET Core بدون استفاده از StructureMap یا هر  IoC Container دیگر و فقط    به کمک IoC Container توکار ASP.NET Core   هست ؟ در غیر این صورت کدام  Container را پیشنهاد می‌دهید ؟  
‫۷ سال و ۲ ماه قبل، جمعه ۳۰ تیر ۱۳۹۶، ساعت ۰۵:۵۱
نیازی به مثال اضافه‌تری ندارد. بسته‌ی نیوگت مربوطه را نصب کنید. اینترفیس یاد شده را پیاده سازی کنید. برنامه را کامپایل کنید. فقط همین مراحل کافی هستند تا مابقی کدهای مرتبط، به صورت خودکار به فایل exe یا dll نهایی اضافه شوند.
‫۷ سال و ۲ ماه قبل، جمعه ۳۰ تیر ۱۳۹۶، ساعت ۰۵:۴۴
با سلام ! 
یعنی می‌فرمایید اینترفیس  InotifyPropertyChanged برای کلاس پیاده سازی شود کافی است ؟
یه نمونه مثال برای InotifyPropertyChanged    با این روش قرار می‌دهید ؟ روش اول AOP Inceptor برای InotifyPropertyChanged   خیلی جالب بود.