小编Žel*_*ber的帖子

使用Ninject进行.NET MVC依赖注入

我刚开始用.NET编程,我在实现时遇到了一些问题dependency injection (using Ninject).

我正在创建某种餐饮应用程序,用户可以浏览城镇,城镇浏览餐馆和餐馆浏览食物.

我正在使用UnitOfWork和存储库模式,例如我通过id访问城镇,如下所示:

_unitOfWork.TownRepository.GetByID(id);
Run Code Online (Sandbox Code Playgroud)

现在我开始在应用程序中实现服务,我遇到了需要dependency injection.

我已经创建ITownService,IRestaurantServiceIFoodService(因为我已经TownRepository,RestaurantRepository并且FoodRepository在我的UnitOfWork).

TownService的样本外观:

public class TownService : ITownService
    {
        // initialize UnitOfWork
        private IUnitOfWork _unitOfWork;

        public TownService()
            : this(new UnitOfWork())
        {
        }

        public TownService(IUnitOfWork unitOfWork)
        {
            _unitOfWork = unitOfWork;
        }

        public Town GetByID(object id)
        {
            return _unitOfWork.TownRepository.GetByID(id);
        }

        public IEnumerable<Town> GetAll()
        {
            return _unitOfWork.TownRepository.Get();
        }

        public bool Insert(Town town)
        {
            // validation logic
            if …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc dependency-injection ninject

11
推荐指数
1
解决办法
8659
查看次数

NSString属性和自定义init

我有两个问题.

首先 - 在obj-c中声明字符串

@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *city;
Run Code Online (Sandbox Code Playgroud)

那些是(nonatomic, copy)正确的还是应该使用(nonatomic, strong),还是其他什么?

第二 - 如果我想为上面的字符串设置自定义初始值设定器,我会使用

-(id)initWithName:(NSString *)n andCity:(NSString *)c
{
    self = [super init];
    if (self) {
        self.name = n;
        self.city = c;
    }
}
Run Code Online (Sandbox Code Playgroud)

或者我应该使用:

-(id)initWithName:(NSString *)n andCity:(NSString *)c
{
    self = [super init];
    if (self) {
        self.name = [n copy]
        self.city = [c copy];
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以看到两种方式似乎都适用于这两个问题,但我确信一个方法比另一个方法更正确,所以我想问一下我应该用哪些方法在其他项目中编写正确的代码.

谢谢.

initialization objective-c init nsstring nscopying

5
推荐指数
1
解决办法
1554
查看次数

ASP.NET MVC和服务层依赖注入

我有一些构造函数的问题,controller并且service被调用controller.

这是我的服务:

// model state dictionary for validation
private ModelStateDictionary _modelState;

// initialize UnitOfWork
private IUnitOfWork _unitOfWork;

public TownService(ModelStateDictionary modelState, IUnitOfWork unitOfWork)
{
    _modelState = modelState;
    _unitOfWork = unitOfWork;
}
Run Code Online (Sandbox Code Playgroud)

现在在我的控制器中我想创建新服务,传递控制器this.ModelState但不想添加UnitOfWork内部控制器.

像这样的东西:

private ITownService _townService;

public TownController()
{
    _townService = new TownService(this.ModelState, null);
}
Run Code Online (Sandbox Code Playgroud)

所以考虑的一切UnitOfWork都是在服务内部完成的.控制器只是传递它自己modelState,服务是创建新的服务UnitOfWork.

这可能也是好方法吗?我怎样才能做到这一点?或者我应该new UnitOfWork在控制器中添加而不是null参数?

因为我想尽可能地分离Core,DAL,Web,以便一切都发挥作用,并且在控制器和服务中添加UnitOfWork似乎是不好的方式......

谢谢.

.net asp.net-mvc dependency-injection unit-of-work service-layer

1
推荐指数
1
解决办法
2329
查看次数

NSDictionary不会改变

我想让自己变得更容易,所以我创建了一个由其他函数使用的字典(按对象或对象按键到达键),但该字典始终是静态的.这是一个很好的方式,或者我需要财产或其他什么?

+ (NSDictionary *)dictionaryWithCategoriesAndStrings
{
    return @{
             kNewsCategoryAll       : @(NewsCategoryAll),
             kNewsCategoryRadio     : @(NewsCategoryRadio),
             kNewsCategoryEconomics : @(NewsCategoryEconomics),
             kNewsCategoryCulture   : @(NewsCategoryCulture),
             kNewsCategorySport     : @(NewsCategorySport),
             kNewsCategoryTravel    : @(NewsCategoryTravel),
             kNewsCategoryMusic     : @(NewsCategoryMusic),
             kNewsCategorySociety   : @(NewsCategorySociety),
             kNewsCategoryHealth    : @(NewsCategoryHealth)
             };
}
Run Code Online (Sandbox Code Playgroud)

所以现在我总是通过函数[self dictionaryWithCategoriesAndString]访问这个相同的字典;

注意:键是在顶部声明的静态字符串,对象是带整数的NSNumbers.

static object objective-c nsdictionary ios

0
推荐指数
1
解决办法
89
查看次数