2010-06-25 3 views
0

COM Interop을 통해 .NET 개체를 사용하는 VB6 응용 프로그램에서 작업하고 있습니다. 응용 프로그램은 잘 작동하지만 VB6에서 .NET 객체를 인스턴스화 할 때마다 성능이 저하되는 것처럼 느껴집니다..NET COM Interop에서 팩토리 메서드를 사용하면 성능이 향상됩니까?

Set lCartItemClass = New CartItem 
    Set lCartItem = lCartItemClass 
    lCartItem.SKU = .Fields("SKU").Value 
    lCartItem.Quantity = .Fields("Quantity").Value 
    Set lCartItemsClass(i) = lCartItem 

    '... ' 

    mCartClass.CartItems = lCartItemsClass 
    Set mDiscountEngine.Cart = mCartClass 
: 예를 들어

, 나는 레코드를 통해 루프 및 레코드의 각 항목에 대한 새로운 .NET 객체를 인스턴스화하고 배열 (CartItemDiscountEngine 모두 .NET의 객체)에 추가 VB6 코드가

내 속성에 대해 원하는 매개 변수를 사용하고 실행시 .NET 측에서 개체 인스턴스화를 처리하는 팩터 리 메서드를 추가하여 성능상의 이점을 얻을 수 있습니까? 위의 코드 대신 다음과 같은 코드를 사용했습니다.

mDiscountEngine.Cart.AddCartItem(.Fields("SKU").Value, _ 
     .Fields("Quantity").Value) 

답변

1

interop에서 전화를 걸면 항상 비싸게됩니다. 설명하는 솔루션이 성능을 향상시킬 것이라고 생각하지 않습니다. 최선의 방법은 각 속성을 배열에 추가하는 vb6의 레코드 세트를 루프하는 것입니다. ary_SKU(), ary_Quantity() 등등. 그런 다음 .Net에 매개 변수로 배열을 전달하고 .net 측에서 배열을 다시 순환하고 배열의 데이터에서 클래스를 빌드합니다.

관련 문제