[C#] 표현식 트리에는 선택적 인수를 사용하는 호출 또는 호출이 포함되지 않을 수 있습니다

표현식 트리에는 선택적 인수를 사용하는 호출 또는 호출이 포함되지 않을 수 있습니다

return this.RedirectToAction<MerchantController>(x => x.Edit(merchantId));

편집에 두 번째 널 입력 가능 인수가있는 경우

왜 이런거야?



답변

기본 식 트리 API는 선택적 인수를 지원하지 않습니다.

IL 컴파일 된 코드의 경우 CLR 컴파일러는 인수가 명시 적으로 제공되지 않은 경우 선택적 인수를 사용하여 메서드를 호출하는 것을 지원하지 않기 때문에 컴파일 타임에 기본값 (하드 코딩 됨)을 삽입합니다.


답변

Mock.setup을 사용하여 여러 기본 매개 변수가있는 메소드를 조롱하려고 할 때 동일한 메시지가 나타났습니다. 람다에 추가 매개 변수를 추가해야했습니다.

void someMethod(string arg1 = "", string arg2 = "")

mockedObject.Setup(x => x.someMethod(It.IsAny<string>(), It.IsAny<string>()))


답변