问题列表 - 第38771页

c#WCF捕获Base类型的故障异常

我一直在寻找如何在c#中找到基本故障合同类型.我希望我的所有错误契约都从一个类继承,并在MVC控制器中有一个catch(FaultException fex).

DataContracts

[DataContract]
public class BaseClass1 
{ }

[DataContract]
public class Class2 : BaseClass1 
{ }
Run Code Online (Sandbox Code Playgroud)

服务

[ServiceContract]
public interface IService1
{
    [OperationContract]
    [FaultContract(typeof(BaseClass1))]
    [FaultContract(typeof(Class2))]  //Do I need this one?
    void ThrowClass2();
}

public class Service1 : IService1
{
    public void ThrowClass2()
    {
        throw new FaultException<Class2>(new Class2(), "Class2 Reason");
    }
}
Run Code Online (Sandbox Code Playgroud)

服务消费者

FaultTestService.Service1Client client = null;
try
{
    client = new FaultTestService.Service1Client();
    client.ThrowAmpFaults("InvalidParameter", 0);
}
catch (FaultException<Namespace.BaseClass1> fex)
{
    //DOES NOT GO IN HERE AS I WOULD EXPECT   
} …
Run Code Online (Sandbox Code Playgroud)

c# wcf

6
推荐指数
2
解决办法
6208
查看次数

Java isInstance vs instanceOf运算符

整个泛型的东西有点像扔我一个循环,更多的RTT.

Specificis?啊,这里的要点是:

enum QueryHelper {
  query1,
  query2;
  static <T> QueryHelper getQueryHelper (Class<T> expectedReturn) {
    if (expectedReturn.isInstance (SomeRelatedClass.class))
      return query1;
    else
      return query2;
  }
}
Run Code Online (Sandbox Code Playgroud)

然后我会这样称呼它:

...
QueryHelper helper = QueryHelper.getQueryHelper(SomeRelatedClass.class);
...
Run Code Online (Sandbox Code Playgroud)

这样我就可以在实际帮助器中灵活地分配查询返回类型.它做了一些铸造和对象创建.我所看到的是,没有比赛,我应该以其他方式这样做吗?或者整个想法是不是很糟糕?

而真正的核心是我不理解class.isInstance和instanceOf运算符之间的区别?我应该使用后者吗?

java inheritance typing rtti

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

从log4j appender中排除一个类

我有一个log4j.properties文件,看起来像这样:

log4j.logger.com.foo=INFO, foo-log
log4j.logger.com.foo.BarImpl=INFO, bar-log
Run Code Online (Sandbox Code Playgroud)

通常对于匹配包结构的类,com.foo我希望使用foo-logappender.但是,在该包中,我希望BarImpl日志使用bar-logappender而不是foo-logappender.目前,BarImpl编写的任何日志都由foo-log和bar-log处理(如预期的那样).如何让foo-log appender忽略BarImpl类?

java log4j

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

在.NET 4.0中有更优雅的方法吗?

似乎C#4.0不支持覆盖中参数的协方差(使用"in"关键字); 那是这样吗?

如果是这样,有没有更优雅的方式来做到这一点?

CONTEXT

public interface IBaseEvent { /* ... */ }

public interface IDerivedEvent : IBaseEvent { /* ... */ }

public class MoreDerivedEvent : IDerivedEvent { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

我有一组处理的类MoreDerivedEvent.由于事件处理代码的限制,我只能注册一个事件处理程序MoreDerivedEvent,我不知道它会将接口注册为事件(我不相信它会,因为指导是明确使用类).因此,为了适当地处理事件,我已经定义了处理程序如下:

public class BaseType
{
    protected virtual void Handle(IBaseEvent @event) { /* Do Base Stuff */ }
}

public class DerivedType
{
    protected virtual void Handle(IDerivedEvent @event)
    {
        /* Do Derived Stuff */
        Handle((IBaseEvent)@event);
    }

    protected override sealed void Handle(IBaseEvent @event)
    {
        base.Handle(@event);
    } …
Run Code Online (Sandbox Code Playgroud)

c# overriding .net-4.0 contravariance

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

MySQL用索引解释过滤列跳跃4,100

我的查询:

EXPLAIN EXTENDED SELECT  `artwork`.`id` ,  `artwork`.`added` 
FROM  `artwork` 
ORDER BY  `artwork`.`added` DESC 
LIMIT 0 , 6
Run Code Online (Sandbox Code Playgroud)

当我在"添加"上添加索引以避免使用filesort和使用index而不是解释的输出来自

id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE artwork ALL NULL NULL NULL NULL 302 100.00 Using filesort
Run Code Online (Sandbox Code Playgroud)

id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE artwork index NULL added 4 NULL 6 5033.33  
Run Code Online (Sandbox Code Playgroud)

而且我担心过滤的上升大约是4,100 - 我在Google上找不到什么filtered意思

mysql query-optimization sql-execution-plan

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

TFS的搁置模型与DVCS相比如何?

假设一个人正在一个小团队SCRUM环境中工作.几个团队正在开发相同代码库的不同分支.在我们的团队中,我们通常会分成两组来处理代码.偶尔人们需要休假等等,能够将A人的代码合并到B人的代码库中是有利的.但是他们通常不想在一天结束时因为害怕破坏构建而承诺.

这使我成为DVCS - 非常适合P2P合并,并不需要"大提交".一名团队成员建议TFS的搁置也能够做到这一点.这两种方法比较如何?

团队目前正在使用Subversion.

tfs dvcs

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

QThreads与Pthreads

我有一个快速的问题.我应该创建一个小型多线程程序来从多个传感器中获取数据,并且我知道pthreads和qthreads.我可以访问这两个库.我个人偏向于使用Qt,因为它的设计和各种功能.但是使用一个与另一个有明显的优势吗?谢谢

qt pthreads

8
推荐指数
2
解决办法
6200
查看次数

如何确认RedHat Enterprise Linux版本?

虽然我从DVD(RedHat/5.1.x86_64)安装RHEL 5.1,但是当我发出命令时,我感到有点困惑:

cat /etc/redhat-release
Run Code Online (Sandbox Code Playgroud)

我有:

Red Hat Enterprise Linux Server release 5.5 (Tikanga)
Run Code Online (Sandbox Code Playgroud)

这是什么意思?这是发布版本还是内核版本?有没有其他方法来确认RHEL的真实版本?

我问这个问题,因为某些应用程序会依赖于此.

提前谢谢了.

linux redhat

30
推荐指数
2
解决办法
18万
查看次数

应用填充以显示:table-cell元素

我正在尝试使用display:table-cell将填充应用于元素的左侧.我正在使用Webkit浏览器,这只需要在Webkit浏览器中工作(耶!).

它以正确的排列显示,但好像根本没有填充.

有什么指针吗?谈到我时,我有点新手display:table

这是我的HTML(我嵌入了css内联,因此在这里更容易阅读):

<div class="setting-group" style="display:table">
   <div class="title">Title</div>
   <div class="field" style="display:table-row">
      <span class="label" style="display:table-cell">Label</span>
      <select class="value" style="display:table-cell; padding-left: 20px" id="id">
         <option value="Opt 1">Option 1</option>
         ...
      </select>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

html padding css-tables

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

实现一种新的编程语言

假设我为其中一个托管代码环境(.NET/JVM)设计了一种新的编程语言.我现在可以通过简单地编写一个翻译器来实现它,该翻译器将这种新语言的源代码翻译成平台的主要语言(C#/ Java),然后让平台的编译器和其他工具处理其余的过程吗?是否有任何简单的概念证明,这种方法的例子?

programming-languages

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