0

obsolete 属性でマークされたメソッドとのインターフェースがあります。属性のエラーパラメータをtrueに設定すると、使用時に例外がスローされます。問題は、これによりスタブがクラス全体に対して生成されないことです。値をfalseに変更すると、スタブが期待どおりに生成されます。

エラーパラメータをtrueのままにしてスタブを生成する方法を探しています。

public interface ICar
{
    void Start();

    [Obsolete("this is obsolete Stop, stop using it", true)]
    void Stop();
}

のさまざまな順列を試しました。

<Moles xmlns="http://schemas.microsoft.com/moles/2010/">
  <Assembly Name="My.Car.Services"/>
  <StubGeneration>
    <TypeFilter TypeName="ICar" SkipObsolete="true" />
  </StubGeneration>
</Moles>
4

1 に答える 1

0

これは仕様によるものです。メソッドが Obsolete(..., true) でマークされている場合、C# はそのインターフェイスを実装するクラスをインスタンス化することを許可しません。

于 2011-04-30T03:51:58.490 に答える