2011-07-12 11 views
6

Şu anda yükseltilmekte olan bir eski projede kullanmak üzere COM'a maruz kalacak bir kitaplık üzerinde çalışıyorum. Açıklanacak arayüzler yaratıyorum ve üzerinde uzun, int, vb. DescriptionAttribute kullanarak, arabirimler, sınıflar ve yöntemler için .tlb içinde oluşturulan helpstrings alabilirim, ancak bazı nedenlerle özellikler için çalışmak istemiyor. TLB çıkışında mülkler için oluşturulan bir yardım ipi almak için var mı?COM arabirimleriyle gösterilen C# özelliklerine uygulanan helpstring özniteliğini alma

cevap

8

Özelliği, alıcı ve ayarlayıcıya ayrı ayrı yerleştirmeniz gerekir. Bunun gibi:

using System; 
using System.ComponentModel; 
using System.Runtime.InteropServices; 

namespace ClassLibrary1 { 
    [ComVisible(true), InterfaceType(ComInterfaceType.InterfaceIsDual)] 
    public interface IFoo { 
     int property { 
      [Description("prop")] 
      get; 
      [Description("prop")] 
      set; 
     } 
    } 
} 

Tanımı yinelemek hantaldır, ancak IDL'de de gereklidir.

+1

Evet, bu hile yaptı. Aynı şeyi yöntem parametreleriyle yapmanın bir yolu var mı? Bunları da işe alamıyorum. Yöntemler kendileri için iyidir, ancak parametreler veya dönüş değerleri değil. –

+1

Hayır, tür kitaplıkları tarafından desteklenmiyor. –

+0

Bunun bir gürültü olduğunu biliyorum, ama teşekkür ederim @HansPassant. Her zaman COM hakkında bir sorum var, orada bir cevap var. – RubberDuck