0

<replaced-method> と spring.Net で IMethodReplacer を実装するオブジェクトを使用して、C# でゲッターを交換できるかどうかを調べようとしていますか? この場合、注入されるプロパティは計算された値であるため、このルートに進む必要があります。ゲッターを実際のメソッドにする必要がありますか?

これが私がやろうとしていることのスケルトンです:

public class SecureHeader
{
    public string Token { get; set; }
}

public class Generator
{
    public SecureHeader GenerateSecureHeader(object[] args) { return new SecureHeader(); }
}

public class InstantiatedByIOC
{
    public virtual SecureHeader Header
    {
        get
        {
            return new SecureHeader
            {
                Token = "Hard Coded"
            };
        }
    }
}

public class SecureHeaderReplacer : IMethodReplacer
{
    public Generator Generator { get; set; }
    public object Implement(object target, MethodInfo method, object[] args)
    {
        return Generator.GenerateSecureHeader(null);
    }
}

これを配線するにはどうすればよいですか (無効なメソッドオーバーライドを取得し続けます:D)?

以下は機能しません。

<object id="replacer" type="SecureHeaderReplacer">
   <property name="Generator" ref="CreatedElsewhere"/>
</object>
<object id="entityToInject type="InstantiatedByIOC">
   <replaced-method name="Header replacer="replacer">
      <arg-type match="SecureHeader" />
   </replaced-method>
</object>

どれでも

4

1 に答える 1

1

....そして、リフレクターを介してコードを見ると、次のようなものを使用できることがわかりました。

<object id="entityToInject" type="InstantiatedByIOC">
   <replaced-method name="get_Header" replacer="replacer"/>
</object>
于 2013-07-15T20:37:54.923 に答える