问题列表 - 第36349页

C#中的接口继承

我正在尝试在编写应用程序时遇到的问题超出了(对我来说)很大的问题.请看这个(我会尽量缩短代码):

我有root接口叫IRepository<T>.接下来,IBookRepository : IRepository<Book> Next,实现它的具体类:BookRepository : IBookRepository

在我声明的RepositoryManager类中 private IRepository<IRepoItem> currentRepo;

IRepoItem 是一个由Book类实现的接口.

现在,当我尝试做这样的事情时:

currentRepo = new BookRepository();
Run Code Online (Sandbox Code Playgroud)

VisualStudio提供错误消息:

无法将类型'BookRepository'隐式转换为'IRepository'.存在显式转换(您是否错过了演员?)

我尝试显式转换,但抛出运行时异常...

我知道(几乎可以肯定)它是一种叫做协方差的东西,这可能(可能)在.Net 4.0中解决了.不幸的是我正在使用框架版本3.5编写,我无法改变它.请给我一些建议怎么做 - 如何超支这个问题?我想从RepoFactory获得currentRepo,它会产生几种存储库,具体取决于用户的需求.我不知道这里是否允许链接,但我在http://olgatherer.wordpress.com/上写了一些博客,我在其中描述了应用程序的创建.我的英语不好,但我希望能够理解我.提前谢谢你的回答.

最好的问候,skrzeczowas

c# oop interface covariance

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

我们如何在WPF应用程序中进行空闲时间处理?

有没有办法在WPF应用程序中等待MFC中的OnIdle事件进行空闲时间处理?

.net c# wpf

9
推荐指数
2
解决办法
4814
查看次数

交易和报告数据库 - 如何?

构建具有高度规范化的数据库的事务系统时,运行报告样式查询,甚至在UI上显示数据的查询都可能涉及多个联接,这在数据繁重的情况下可以并且通常会影响性能.加入很贵.

通常,所提供的指导是您永远不应该从事务性数据库模型中运行这些查询,而应该使用针对特定UI视图或报告而定制的非规范化展平模型,从而消除了对许多联接的需要.在这种情况下,数据复制不是问题.

这个概念很有意义,但是当专家发表这些陈述时我很少看到的是如何实现这一点.例如,(并且坦率地说,我很欣赏使用任何平台的示例)在sql server后端运行的中型系统中,您有一个规范化的事务模型.您还有一些报告和需要查询的网站.因此,您创建了一个"报告"数据库,可以平滑规范化数据.你如何保持同步?交易日志运送?如果是这样,您如何转换数据以适应报告模型?

.net database sql-server

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

CDataColumn的'value'内的条件语句

有谁知道如何在CGridView列字段中显示条件值?

我在DB中输入了'F'的性别'M',在CGridView中,但我想分别显示'男'和'女',而不是M或F.

任何想法都会受到欢迎;-)

php yii

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

如何在Perl中使用不同的随机值多次替换相同的字符串?

我正在使用这个Perl单行程序(在bash中)成功替换给定文件中的随机字符串:

perl -pi -e "s/replace\ this/`</dev/urandom tr -dc A-Za-z0-9 | head -c64`/g" example.php
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何用不同的随机字符串替换几个"替换" .

regex bash perl

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

Rails 3多模型表单,具有多个子模型的新实例

我有三个模型以多模型形式呈现.

class Parent < ActiveRecord::Base
  has_many :children
  accepts_nested_attributes_for :children
end

class Child < ActiveRecord::Base
  belongs_to :parent
  has_many :other_children
  accepts_nested_attributes_for :other_children
end

class OtherChild < ActiveRecord::Base
  belongs_to :child
end

= form_for @parent do |f|
  # fields for parent
  = f.fields_for :children, @parent.children do |cf|
    = cf.fields_for :other_children, @parent.children do |ocf|
      # fields_for other child
    = cf.fields_for :other_children, @parent.children.new do |ocf|
      # fields_for other child
Run Code Online (Sandbox Code Playgroud)

这有效,除非我通过jquery复制第二组子字段.更清楚的是,带有新的other_child模型的fields_for有一个创建按钮,可以触发一些jquery,例如$(new_child_form).clone().insertBefore($(new_child_form))允许在同一个表单提交中添加多个子模型.我知道我可以通过ajax单独提交每个子表单,但这不是我想要的.

Rails越来越多parent[children_attributes][0][other_children_attributes][1],似乎只使用最后一个.有任何想法吗?

ruby-on-rails-3

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

ESRI的shapefile到Matlab

我正在寻找一种函数来读取/写入ESRI的shapefile格式(在Arcview中使用)中的点,线和多边形,以便在Matlab中使用

matlab esri shapefile

5
推荐指数
2
解决办法
8933
查看次数

"存储过程'xxx'只能在非链式事务模式下运行." 在EJB上下文中从DataSource调用过程时出错

我们在Sybase中有一个数据库,我们可以从Java服务器访问它.

使用,直接通过Sybase驱动程序访问数据库DriverManager.它工作正常,我们能够调用我们的存储过程.

最近,我们正在迁移到应用程序服务器(在JBoss 5上),现在通过JNDI连接器调用数据库,使用DataSource:

Properties ppt = new Properties();
ppt.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
ppt.put("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
ppt.put("java.naming.provider.url", "jdbc/sybase");

InitialContext ctx = new InitialContext(ppt);
DataSource ds = (DataSource) ctx.lookup(AConfig.getInstance().getDatasourceJndiName());

Connection conn = ds.getConnection();
Run Code Online (Sandbox Code Playgroud)

(使用JBoss示例中的基本设置配置DataSource )

但是,在此设置中,有几个过程失败,出现此错误:

"存储过程' ** '只能在非链接事务模式下运行."

或者这种情况,对于其他情况(失败的命令改变):

多语句事务中不允许TRUNCATE TABLE命令

从我在互联网上发现的东西来看,它看起来像是JBoss中的东西,或者连接器本身正在打开一个事务,导致这些错误.因此,我能找到的针对这些特定问题的各种解决方案过于局部化,而且似乎是一个更大的问题.

有没有办法防止这种行为(假设这是实际问题)?


我在这个特定领域的知识非常薄,这对我来说是新的.因此,此描述可能缺少重要的细节.请指出我如何改进这个问题,如有必要,我可以添加哪些细节.

java sybase jboss ejb-3.0

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

创建用下划线替换空格的 WPF TextBox 的最佳方法是什么?

我正在FilteredTextBoxWPF 中创建一个子类化包含的TextBox控件。该FilteredTextBox范围内必须只允许字符[a-zA-Z0-9_]来输入,我已经得到了部分相当多的工作。我已经开始OnPreviewTextInput处理键入的字符,OnPreviewDrop过滤拖放的字符,并且我添加了一个 PreviewExecutedHandler,只要在控件上执行命令来处理粘贴,它就会运行。

到现在为止还挺好。

棘手的部分是控件还应该在输入时用下划线替换空格。

我想出了一个解决方案,但感觉很糟糕,我不知道它缺少什么。我觉得必须有一种我不知道的更好的技术。我所做的:

internal class FilteredTextBox : TextBox
{
    public FilteredTextBox()
    {
        CommandManager.AddPreviewExecutedHandler(this, this.HandlePreviewExecuteHandler);
    }

    private void HandlePreviewExecuteHandler(object sender, ExecutedRoutedEventArgs e)
    {
        var uiCmd = e.Command as RoutedUICommand;
        if (uiCmd != null && (uiCmd.Text == "Space" || uiCmd.Text == "ShiftSpace"))
        {
            // We're manually handling spaces, so we need to make appropriate checks.
            if (this.Text.Length == this.MaxLength) return;

            if (this.SelectionLength == 0)
            {
                // If …
Run Code Online (Sandbox Code Playgroud)

c# wpf textbox wpf-controls

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

VB.NET字符串操作 - 仅限一个字母大写字母

所以我有一个字符串"NEW".

什么是将该字符串转换为"新"的SIMPLEST方法.

基本上现在我这样做:

Case "NEW"
    makes = connector.GetMakesByYear(_AuthorizationKey, "NewCar", CDate(Now), Year)
Case "USED"
    makes = connector.GetMakesByYear(_AuthorizationKey, "UsedCar", CDate(Now), Year)
Run Code Online (Sandbox Code Playgroud)

我宁愿不使用case语句,因为它只需要更改一个参数,并且都附加了"Car".

vb.net string

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