小编Mar*_*ski的帖子

在NHibernate中管理会话的最佳方法是什么?

我是NHibernate的新手(我的第一个大项目).
我一直在使用一种简单的数据访问方法,通过在使用块中创建ISession对象来获取我的对象或对象列表,这样会话在退出代码块后就被销毁了.

但是,这在需要延迟加载的情况下不起作用.
例如,如果我有一个Customer对象,其属性是Orders的集合,那么当尝试延迟加载时,我会得到一个Hibernate异常.
有人使用不同的方法吗?

.net c# nhibernate

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

NUnit 条件拆卸?

有没有办法在 NUnit 中进行有条件的拆卸?

我有一个 TestFixture 需要为几个测试运行清理代码,我真的不想:

  1. 在每个测试上运行 TearDown 方法
  2. 创建一个私有辅助方法,如果可以避免的话,从需要清理的测试中调用它

nunit unit-testing

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

XCode 构建目录的 Git 忽略模式

我是 Git 新手,这是我第一个使用 Git 而不是 SVN 作为源代码管理的项目。我正在使用 XCode 开发 iPhone 项目。我希望 Git 忽略构建目录,该目录位于 XCode 项目的根文件夹中。我在这里发现了其他几个问题,还在 google 上找到了文章,其中提供了有关如何在根目录中创建 .gitignore 文件,然后将其添加到 Git 存储库以获取要忽略的目录的示例。

以下是我在设置存储库时采取的步骤:

  1. 打开终端并导航到应用程序的根目录
  2. 调用git init初始化存储库
  3. 调用git add .gitignore添加gitignore文件
  4. 调用git commit -m提交 gitignore 文件
  5. 调用git status查看存储库状态

此时,除了构建目录之外,我的 gitignore 文件中列出的所有其他目录和文件都被正确忽略。这是我的 gitignore 文件的样子:

build/
.DS_Store
**/*.pbxuser
*.mode2v3
*.mode1v3
**/*.perspectivev*
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下不同的条目忽略构建目录,但没有成功:

  • 建造
  • 建造/
  • 建造/*

有人知道我在这里做错了什么吗?

git xcode

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

使用核心数据和神奇记录进行 iOS 应用程序单元测试

我有一个 iOS 应用程序,它使用 Core Data 和出色的Magical Record来管理持久性。这是我的问题:

我们现有的单元测试结构使用标准的 iOS 应用程序测试。我想为每个测试使用干净的内存数据库运行我的单元测试。我按照本文中的说明使用 Magical Record 进行设置。该问题出现在运行应用程序测试的实现中。因为应用程序测试首先运行应用程序包,然后是单元测试包,所以在我的内存存储调用有机会运行之前,我设置核心数据堆栈的正常调用会被调用。

我整夜在谷歌上搜索这个问题,并找到了几篇很有前途的文章:

它们的问题在于它们使用单​​例数据访问对象作为进入其核心数据调用的网关。我的应用程序不是这样设置的。我正在使用对 Magical Record 的调用来获取和保存数据。

有没有人遇到过这个问题?如果是这样,我是否遗漏了一些允许我在测试运行时将数据设置交换到内存存储的细节?

编辑:添加代码

在我的应用程序委托中,我有这个:

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
    [MagicalRecord setupAutoMigratingCoreDataStack];
    // Other setup code
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

在处理核心数据的每个单元测试类中,我都有:

-(void)setUp{
    [super setUp];
    [MagicalRecord setDefaultModelFromClass:[self class]];
    [MagicalRecord setupCoreDataStackWithInMemoryStore];
}

-(void)tearDown{
    [MagicalRecord cleanUp];
    [super tearDown];
}
Run Code Online (Sandbox Code Playgroud)

我可以看到每个测试都调用了应用程序委托代码和设置/拆卸,但我不确定如何使测试的默认核心数据堆栈使用内存存储。我还将 .xcdatamodel 文件添加到单元测试目标中。

core-data ocunit ios magicalrecord

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

Swift 2 协议 - 具有通用类型的属性?

在我使用 Swift 2 的项目中,我正在处理 2 个协议,MyViewControllerProtocol并且MyViewModelProtocol. 我希望所有视图控制器都符合MyViewControllerProtocol. 该协议需要一个属性。该财产应符合MyViewModel协议。

我想在这里起作用的是这样的:

protocol MyViewControllerProtocol {
    var viewModel: <T:MyViewModelProtocol> { get set }
} 

class MyCustomViewModel: MyViewModelProtocol {
     // Implementation here
}
Run Code Online (Sandbox Code Playgroud)

然后对于视图控制器:

class ViewController: UIViewController, MyViewControllerProtocol {
    var viewModel: MyCustomViewModel {
        // Getter and Setter implementations here
    }
}
Run Code Online (Sandbox Code Playgroud)

我很可能认为这是错误的。这不会编译,而且我还没有看到这种类型的实现与属性结合使用。是否有其他模式可以完成我在这里尝试做的事情?

swift2

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

使用Visual Studio时重用代码的最佳方法?

我尝试了两种不同的重用代码方法.我有一个完整的类库项目的解决方案,通用代码我几乎在我工作的每个项目中重用.当我开始研究一个新项目时,我将以两种方式之一重用此代码库中的代码.我已经尝试将我需要的项目从这个代码库带入我的项目中.我还尝试编译为.dll并从当前解决方案的根目录中的文件夹引用.dll.虽然第二种方法似乎更容易实现,但我总是发现自己对原始代码做了一些小调整,以使其适合我当前项目的上下文.我知道这是一个模糊的问题,但有没有人在其他重新使用类库的方法上取得成功呢?

.net visual-studio

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

UIScrollView懒惰加载策略扭曲

我有一个水平滚动UIScrollview启用分页.每个页面代表一个数据Feed.每个数据馈送消耗相当大的内存,包括UITableView中显示的文本和图像.由于用户可以拥有无​​限量的数据馈送,因此我需要延迟加载它们以防止最大限度地减少内存使用量.我的想法是在任何给定点保持内存中最多5个数据源,并释放超出该范围的任何内容.我最初的看法是将页面保留在内存中的视口中,并将页面保留在其中的任意一侧.这样,当用户滚动时,下一个连续页面将始终在内存中并将快速显示.

这是我的问题:我们还需要支持这样一种场景:用户可以跳到特定的数据源,可能是向右或向左的10个或更多页面,这会将我的整个延迟加载方案抛出窗口.

可能有更好的策略来支持这种情况吗?

iphone lazy-loading uiscrollview

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

NHibernate Oracle Connection?

我是第一次为NHibernate设置Oracle连接.我已将Oracle.DataAccess.dll文件复制到我的bin文件夹中.无论我尝试什么,我都会遇到同样的错误:

Could not load type >NHibernate.Driver.OracleDataClientDriver. Possible cause: no assembly name specified. 
Run Code Online (Sandbox Code Playgroud)

我使用以下配置:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory name="DefaultSessionFactory">
        <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
        <property name="dialect">NHibernate.Dialect.Oracle9Dialect</property>
        <property name="connection.driver_class">>NHibernate.Driver.OracleDataClientDriver</property>
        <property name="connection.connection_string">Data Source=DB;User ID=USERPassword=****;</property>       
        <property name="show_sql">true</property>
        <mapping assembly="NHibernateExample.DataAccess"/>
    </session-factory>
</hibernate-configuration>
Run Code Online (Sandbox Code Playgroud)

我之前只为SQL Server设置了NHibernate.我在这里错过了什么吗?

nhibernate

3
推荐指数
1
解决办法
2万
查看次数

WCF客户端使用证书和用户名/密码凭据?

我从ASP.NET使用我公司内部的Web服务.我已经使用svcutil.exe连接到服务并从wsdl生成绑定和类.我能够连接到开发版本,不需要身份验证.现在我们正在增加安全性.我的新URI使用https,但也需要用户凭据.

我是WCF的新手,我正在尝试确定配置它的方法.根据我在MSDN上的阅读,似乎要走的路是使用.

更新:这是我一直在尝试的最新代码.这包含了答案的反馈:

 <system.serviceModel>
   <behaviors>
     <serviceBehaviors>
       <behavior name="svcBehavior">
         <serviceCredentials>
           <serviceCertificate storeLocation="CurrentUser"
                               storeName="My"
                               x509FindType="FindByThumbprint"
                               findValue="xx xx xx etc"/>
         </serviceCredentials>
       </behavior>
     </serviceBehaviors>
   </behaviors>
   <bindings>
     <wsHttpBinding>
       <binding name="CustomerPaymentProgramSOAPBinding">
         <security mode="TransportWithMessageCredential">
            <message clientCredentialType="UserName" />
         </security>
       </binding>
     </wsHttpBinding>
   </bindings>
  <client>
   <endpoint address="https://***URL***"
    binding="wsHttpBinding" bindingConfiguration="CustomerPaymentProgramSOAPBinding"
    contract="CppService.CustomerPaymentProgramService" name="CustomerPaymentProgramService">
   </endpoint>
  </client>
 </system.serviceModel>
Run Code Online (Sandbox Code Playgroud)

这是调用代码:

using (var svc = new CustomerPaymentProgramServiceClient())
{
    svc.ClientCredentials.UserName.UserName = "*******";
    svc.ClientCredentials.UserName.Password = "*******";
    var request = new GetServiceDataProgramRequest()
                      {
                          CustomerAccountId = Convert.ToInt64(customerAccountId)
                      };

    svc.Open();
    var response = new GetServiceDataProgramResponse();
    var metaData = new …
Run Code Online (Sandbox Code Playgroud)

wcf wcf-security

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

UIViewController中的Xcode 5.1 UITableView - 自定义TableViewCell Outlets为零

我有一个UITableView作为UIViewController中的子视图.我没有使用UITableViewController,因为我有一些与tableview无关的其他内容占用了部分屏幕.我正在使用故事板.我将tableview设置为插座,viewcontroller是数据源和委托.如果我在这种情况下使用标准的UITableViewCell,一切运行良好,我可以加载内容.

我需要为此tableview使用自定义UITableViewCell,因此我执行了以下步骤:

  1. 创建了一个名为SWTableViewCell的UITableView子类
  2. 在viewDidLoad中添加了一个调用,用于在接口构建器中注册单元格: [self.tableView registerClass:[SWTableViewCell class] forCellReuseIdentifier:@"Cell"];
  3. 在我的tableview上的故事板中,将原型单元的Class设置为SWTableViewCell
  4. 在故事板中,将单元重用标识符设置为"Cell"
  5. 在故事板上为原型单元添加了一些标签
  6. 仍然在故事板中,按住Ctrl键从标签拖动到SWTableViewCell.h以创建出口
  7. 在我的cellForRowAtIndexPath:方法中,将单元格出列并转换为自定义子类:SWTableViewCell *cell = (SWTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"Cell"];

检查时,单元格变量是正确的类型.它不是UITableViewCell,而是SWTableViewCell.但没有一个网点人口稠密.属性存在,但它们是零.我敢肯定有一个我必须要忘记的联系,但我想不出我在这一点上跳过的任何事情.

这种情况是否可行,或者它是否只能通过IB和故事板工作?

storyboard uitableview ios

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