0

다른 문제를 다시 알아낼 수 없습니다. 이전에 MailItem에서 코드에 의해 추가 된 사용자 지정 항목을 검색하고 있습니다. 나는 현재 전망 2010으로 테스트하고있어, 그이ItemProprieties outlook에서 값을 검색 할 수 없습니다. 연산을 수행하지 못했습니다.

Dim mailIndex 
For mailIndex = objFolder.Items.Count To 1 Step - 1 
    Dim property1 
    Set property1 = GetMigrationProperty(objFolder.Items(mailIndex).ItemsProprieties) 
    '... code goes on 
    Next 

루프의 두 번째 반복 한 후, property1.Value 그대로 "작업 실패"하고 예외를 throw로 간단합니다. 왜?

PS : 나는

답변

2

아야위한 반전 된에 각에서 루프 유형을 변경 한 이후이 문제가! 이게 진짜 코드인가요? 이것은 극단적 인 여러 점 표기법입니다.

캐시 번만 반복 당 루프에 들어가기 전에 변수 항목 및 전화 항목 (색인) : 당신이 한 번 이상 GetMigrationProperty 더를 호출하는 경우

set Items = objFolder.Items 
For mailIndex = Items.Count To 1 Step - 1 
    Dim property1 
    set Item = Items.Item(mailIndex) 
    Set property1 = GetMigrationProperty(item.ItemsProprieties) 
    '... code goes on 
    set item = Nothing 
Next 
+0

또한이의 item.ItemsProprieties 수집 및 저장의 값을 캐시 로컬 변수에서. 루프 끝에서 북쪽으로 재설정하십시오. –

+0

나는 이것이 작동한다는 것을 알았다. 각 루프 후에 항목 객체를 해제하는 것이 왜 중요한지 묻겠습니다. 내가 올바르게 이해한다면 items 객체는 mailItem에 대한 레퍼런스를 가지고있다. 우리가 그것을 릴리즈하지 않는다면이 레퍼런스는 다음 반복에서 또 다른 레퍼런스로 대체 될 것이다. 왜 중요하고 어떻게 문제를 일으킬 수 있습니까? 나는 SharePoint/C# 배경에서 왔기 때문에 이것이 이상하게 보입니다. – Machinegon

+0

다중 점 표기법을 사용하는 경우 인터프리터/컴파일러는 중간 변수를 포함하는 암시 적 변수를 만들고이 변수에 명시 적으로 액세스하거나 해제 할 수 없습니다. VB 스크립트의 범위를 벗어나거나 GC가 C#/VB.Net 에서처럼 느낄 때마다 배포됩니다. 이 문제는 VB 스크립트와 비교할 때 .NET 언어에서 훨씬 심오합니다. –