2011-10-20 37 views
3

CollectionEditorのプロパティを使用するユーザーコントロールがあります。私はコントロールをテストするために同じソリューションで別のプロジェクトを使用しています。私のコレクションエディタは問題なく動作しますが、IDEがコンポーネントdllを再コンパイルした後に設計時にエラーを出す点が異なります。 IDEを閉じると、ソリューションを再度開くよりも問題なく動作します。私がコントロールのコードを変更し、それを再コンパイルすると、IDEは私に同じエラーを返します。私は、コントロールを再コンパイルすると、IDEがコレクションのコードを生成しないことに気付きました。しかし、IDEを閉じて再度開くと、コードが生成されます。CollectionEditorと "**** 'プロパティのコード生成に失敗しました"エラーメッセージ

エラーメッセージ:プロパティ 'AProperty' の

コード生成に失敗しました。エラーは: '[A] MyComponent.APropertyは[B] MyComponent.APropertyにキャストできません。タイプAは、 'MyComponent; ... \ AppData \ Local \ Microsoft \ VCSExpress \ 10.0 \ ProjectAssemblies \ 1f88w0l001 \ MyComponent.dll 'のコンテキスト' LoadNeither 'のコンテキストで、Version = 1.0.0.0、Culture = neutral、PublicKeyToken = nullです。タイプBは、 'MyComponent; ... \ AppData \ Local \ Microsoft \ VCSExpress \ 10.0 \ ProjectAssemblies \ eb4apk_301 \ MyComponent.dll 'のコンテキスト' LoadNeither 'のコンテキストで、Version = 1.0.0.0、Culture = neutral、PublicKeyToken =

ここはコントロールのプロパティです。

[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] 
    [Editor(typeof(ACollectionEditor), typeof(UITypeEditor))] 
    public ACollection AProperty { get { return prop; } } 

そして次はCollectionEditorのコードです:

public class ACollectionEditor : CollectionEditor 
{ 
    protected override object CreateInstance(Type itemType) 
    { 
     nameCounter++; 
     //var newObj = Activator.CreateInstance(itemType, new object[] { "AProperty" + nameCounter.ToString(), parent}); 
     var newObj = new AProperty("AProperty" + nameCounter.ToString()); 
     return newObj; 
    } 
} 

答えて

0

私はpropety 時間でこの問題を持っていたし、それが後に

SubTitleItem newSub = LearnItem.MainSub.GetSubByPosition(vlc.Time); 

を置き換える解決していました

SubTitleItem newSub = LearnItem.MainSub.GetSubByPosition(GetPlayerPosition()); 

public long GetPlayerPosition() { 
    return vlc.Time; 
} 

---と---

if (LearnItem.PlayerPosition != 0) SetPlayerPosition(LearnItem.PlayerPosition); 

public void SetPlayerPosition(long Pos) { 
    vlc.Time = Pos; 
} 

if (LearnItem.PlayerPosition != 0) vlc.Time = LearnItem.PlayerPosition; 

は、おそらくそれは唯一のトリックですが、それは私のための仕事です。

関連する問題