Protobuff는 명시 적으로 콜백을 콜백합니다.

아흐메드 살레

[ProtoBeforeSerialization]과 같은 콜백 중 하나를 명시 적으로 호출 할 수 있습니까? 다른 수업에서? 강제로 deserialization 프로세스를 시도하고 있습니까?

마크 그 라벨

다음과 같은 콜백이 있다고 가정하면 :

[ProtoBeforeSerialization]
public void FixupStuffBeforeSerialization() {...}

[ProtoAfterSerialization]
public void FixupStuffAfterSerialization() {...}

[ProtoBeforeDeserialization]
public void FixupStuffBeforeDeserialization() {...}

[ProtoAfterDeserialization]
public void FixupStuffAfterDeserialization() {...}

콜백 중 하나를 명시 적으로 호출하는 프로세스는 콜백 중 하나를 명시 적으로 호출하는 것입니다. 예를 들면 :

obj.FixupStuffBeforeDeserialization();

좀 더 미묘하고 미묘한 점이 있다면 알려주세요. 이상적으로는 구체적인 예를 제공하여 알려주세요. 시나리오가 당신이 단지 가지고 object obj있고 메소드의 이름을 모른다면-당신은 리플렉션을 통해 그들을 찾아야 할 것입니다. 다른 serializer와의 호환성 및 비교 가능성을 위해 인터페이스가 아닌 속성을 통해 지정됩니다.

그러나 다음과 같습니다.

var method = FindMethod<ProtoAfterDeserializationAttribute>(obj);
if(method != null) method.Invoke(obj, null);

와:

static MethodInfo FindMethod<T>(object obj)
    where T : Attribute
{
    if(obj == null) return null;
    var methods = obj.GetType().GetMethods(
        BindingFlags.Public | BindingFlags.Instance);
    return methods.SingleOrDefault(m =>
        Attribute.IsDefined(m, typeof(T)) && m.GetParameters().Length == 0);
}

protobuf-net은 실제로 컨텍스트 매개 변수를 포함하여 이러한 메서드에 대해 여러 서명을 지원합니다.하지만 이것은 일반적인 가이드 역할을해야합니다.


참고 기술적으로 콜백을 선택하는 규칙은 더 위의 제안 것을 복잡; protobuf-net이 사용할 실제 방법 을 알고 싶다면 type-model을 물어보십시오 :

var callbacks = RuntimeTypeModel.Default[obj.GetType].Callbacks;
MethodInfo before = callbacks.BeforeDeserialize,
           after = callbacks.AfterDeserialize;
// ...

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

mockito로 익명 내부 콜백을 호출하는 모범 사례를 찾으려고합니다.

분류에서Dev

콜백 함수는 열의 시간과 분을 합산합니다.

분류에서Dev

콜백 지옥을 약속으로 다시 작성하는 방법?

분류에서Dev

node.js는 경로에서 중첩 콜백을 표현합니다.

분류에서Dev

Node.js는 콜백에서 객체로 값을 할당합니다.

분류에서Dev

RequestJS는 실제로 콜백을 어떻게 처리합니까?

분류에서Dev

Javascript 콜백을 콜백에 전달하는 이유는 안드로이드 폰에서 작동하지 않고 CN1의 시뮬레이터에서 작동합니다.

분류에서Dev

콜백 경고 : 대시 'DataTable을 만드는 콜백 오류

분류에서Dev

Jquery Ajax는 응용 프로그램의 첫 번째로드에서 오류 콜백을 발생시킵니다.

분류에서Dev

AngularJS 콜백, $ http의 동작을 복사합니다. 캐시를 약속으로 전환

분류에서Dev

이벤트가 계속 실행되는 동안 다시 설정되면 RegisterWaitForSingleObject가 콜백을 병렬로 실행합니까?

분류에서Dev

JavaScript : 함수는 콜백 함수의 결과를 기반으로 재정렬 된 배열을 반환합니다.

분류에서Dev

모듈화는 기술적으로 nodejs에서 콜백 지옥을 어떻게 해결합니까?

분류에서Dev

Sed는 공백을 백 슬래시 공백으로 대체합니다 (Bash).

분류에서Dev

Node.js 콜백을 사용하는 덜 분명한시기

분류에서Dev

Node.js 콜백을 사용하는 덜 분명한시기

분류에서Dev

콜백을 감시하는 sinon

분류에서Dev

fs.WriteFile은 실제로 파일을 쓰기 전에 콜백을 시작합니다.

분류에서Dev

Angular2 지시문은 부모 구성 요소 콜백 또는 변경 사항을 수신합니다.

분류에서Dev

Facebook-메시징 웹훅이 콜백 PHP 파일을 무한 루프로 유지합니다.

분류에서Dev

ReactJS에서 콜백을 소품으로 사용하여 다시 렌더링하는 것을 방지하는 방법은 무엇입니까?

분류에서Dev

.get ()에는 콜백 함수가 필요하지만 route. (익명 함수)에서 get []으로 [객체가 정의되지 않음]을 얻었습니다.

분류에서Dev

자바 스크립트 비동기는 관련없는 콜백을 병렬로 호출합니다.

분류에서Dev

콜백이 값을 반환하는 것이 합리적입니까?

분류에서Dev

Chrome 확장 프로그램 수명이 긴 메시지 연결-콜백 기능을 사용하는 방법?

분류에서Dev

jQuery .fail () 메서드는 매개 변수로 콜백을 허용합니까?

분류에서Dev

preg_replace는 콜론과 백 슬래시를 대체합니다.

분류에서Dev

Fiddler는 콜론 뒤에 공백을 추가합니다.

분류에서Dev

콜백 실행이 끝날 때 시작되는 간격으로 Javascript 함수를 어떻게 실행합니까?

Related 관련 기사

  1. 1

    mockito로 익명 내부 콜백을 호출하는 모범 사례를 찾으려고합니다.

  2. 2

    콜백 함수는 열의 시간과 분을 합산합니다.

  3. 3

    콜백 지옥을 약속으로 다시 작성하는 방법?

  4. 4

    node.js는 경로에서 중첩 콜백을 표현합니다.

  5. 5

    Node.js는 콜백에서 객체로 값을 할당합니다.

  6. 6

    RequestJS는 실제로 콜백을 어떻게 처리합니까?

  7. 7

    Javascript 콜백을 콜백에 전달하는 이유는 안드로이드 폰에서 작동하지 않고 CN1의 시뮬레이터에서 작동합니다.

  8. 8

    콜백 경고 : 대시 'DataTable을 만드는 콜백 오류

  9. 9

    Jquery Ajax는 응용 프로그램의 첫 번째로드에서 오류 콜백을 발생시킵니다.

  10. 10

    AngularJS 콜백, $ http의 동작을 복사합니다. 캐시를 약속으로 전환

  11. 11

    이벤트가 계속 실행되는 동안 다시 설정되면 RegisterWaitForSingleObject가 콜백을 병렬로 실행합니까?

  12. 12

    JavaScript : 함수는 콜백 함수의 결과를 기반으로 재정렬 된 배열을 반환합니다.

  13. 13

    모듈화는 기술적으로 nodejs에서 콜백 지옥을 어떻게 해결합니까?

  14. 14

    Sed는 공백을 백 슬래시 공백으로 대체합니다 (Bash).

  15. 15

    Node.js 콜백을 사용하는 덜 분명한시기

  16. 16

    Node.js 콜백을 사용하는 덜 분명한시기

  17. 17

    콜백을 감시하는 sinon

  18. 18

    fs.WriteFile은 실제로 파일을 쓰기 전에 콜백을 시작합니다.

  19. 19

    Angular2 지시문은 부모 구성 요소 콜백 또는 변경 사항을 수신합니다.

  20. 20

    Facebook-메시징 웹훅이 콜백 PHP 파일을 무한 루프로 유지합니다.

  21. 21

    ReactJS에서 콜백을 소품으로 사용하여 다시 렌더링하는 것을 방지하는 방법은 무엇입니까?

  22. 22

    .get ()에는 콜백 함수가 필요하지만 route. (익명 함수)에서 get []으로 [객체가 정의되지 않음]을 얻었습니다.

  23. 23

    자바 스크립트 비동기는 관련없는 콜백을 병렬로 호출합니다.

  24. 24

    콜백이 값을 반환하는 것이 합리적입니까?

  25. 25

    Chrome 확장 프로그램 수명이 긴 메시지 연결-콜백 기능을 사용하는 방법?

  26. 26

    jQuery .fail () 메서드는 매개 변수로 콜백을 허용합니까?

  27. 27

    preg_replace는 콜론과 백 슬래시를 대체합니다.

  28. 28

    Fiddler는 콜론 뒤에 공백을 추가합니다.

  29. 29

    콜백 실행이 끝날 때 시작되는 간격으로 Javascript 함수를 어떻게 실행합니까?

뜨겁다태그

보관