2017-12-20 3 views
0

DynamicObject에서 파생 된 클래스에 속하는 일련의 문서를 업로드하려고합니다. 인덱스를 다시 만들 때 인덱스 필드가 변경 될 수 있기 때문에이 작업이 필요합니다. 모든 문서를 업로드 할 때 그러나, 오류가 발생, 인덱스 작성에 잘 작동 :문서로 동적 객체를 사용하여 Azure 검색 색인 만들기

Microsoft.Rest.Azure.CloudException: 'The request is invalid. Details: actions : 0: Document key cannot be missing or empty. 

이 나에게 어떤 이해가되지 않습니다 인덱스가 true로 설정 ISKEY 플래그가 필드가 포함되어 있기 때문에 , 또한 문서에는 해당 필드가 올바르게 설정되어 있습니다. 또한 DynamicObject에서 문서 클래스를 파생시키는 코드를 주석으로 작성하면 모든 것이 올바르게 작동한다는 것을 언급 할 가치가 있습니다.

누구에게 경험이 있습니까? 많은 감사합니다!

답변

1

문서 유형이 DynamicObject에서 상속되기 때문에 정적 속성과 동적 속성이 모두 있다고 가정합니다. 문서 개체가 올바르게 serialize되었는지 확인하십시오.

GetDynamicMemberNames 메서드를 재정 의하여 동적 속성과 정적 속성의 이름을 모두 반환 할 수 있습니다. 다음 코드는 트릭을 수행해야합니다.

public override IEnumerable<string> GetDynamicMemberNames() 
{ 
    return base.GetDynamicMemberNames().Concat(this.GetType().GetProperties().Select(p => p.Name)); 
} 
+0

정적 속성과 동적 속성을 모두 사용한다고 가정 해보십시오. 대단히 감사합니다, 당신의 추천은 트릭을했습니다! –

관련 문제