Git продолжает спрашивать меня о моей ключевой фразе ssh

Сначала вам нужно изменить свой класс для реализации интерфейса (а не для реализации MarshalByRefObject).

interface ITraced {
    void Method1();
    void Method2()
}
class Traced: ITraced { .... }

Затем вам понадобится общий объект-оболочка на основе RealProxy, чтобы украсить любой интерфейс, чтобы позволить перехватывать любые вызов декорированного объекта.

class MethodLogInterceptor: RealProxy
{
     public MethodLogInterceptor(Type interfaceType, object decorated) 
         : base(interfaceType)
     {
          _decorated = decorated;
     }

    public override IMessage Invoke(IMessage msg)
    {
        var methodCall = msg as IMethodCallMessage;
        var methodInfo = methodCall.MethodBase;
        Console.WriteLine("Precall " + methodInfo.Name);
        var result = methodInfo.Invoke(_decorated, methodCall.InArgs);
        Console.WriteLine("Postcall " + methodInfo.Name);

        return new ReturnMessage(result, null, 0,
            methodCall.LogicalCallContext, methodCall);
    }
}

Теперь мы готовы перехватить вызовы метода Method1 и Method2 из файла ITraced

 public class Caller 
 {
     public static void Call() 
     {
         ITraced traced = (ITraced)new MethodLogInterceptor(typeof(ITraced), new Traced()).GetTransparentProxy();
         traced.Method1();
         traced.Method2(); 
     }
 }
461
задан Jonathan Soifer 31 December 2016 в 15:44
поделиться

1 ответ

Другое возможное решение, которое не упомянуто выше, состоит в том, чтобы проверить Ваше удаленное со следующей командой:

git remote -v

, Если удаленное не запускается с мерзавца, но запускается с https, Вы могли бы хотеть изменить его на мерзавца путем следования примеру ниже.

git remote -v // origin is https://github.com/user/myrepo.git
git remote-set origin git@github.com:user/myrepo.git
git remote -v // check if remote is changed
0
ответ дан 22 November 2019 в 22:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: