2016-10-19 5 views
1

baseとrefを使用してこの奇妙なエラーが発生しています。 Consona.Business.ISessionContextからbaseの単語コンテキストのM2MDomain.ISessionContextに変換することはできません。C#はx.ISessionContextからy.ISessionContextに変換できません

//This class controls the functions in MolDatasheets 
[BusinessObject("MolDatasheets")] 
public class ExtendedMolDatasheets : BusinessComponent 
{ 
    //This method creates a refrence to base 
    public ExtendedMolDatasheets(ref Consona.Business.ISessionContext context) : base(context) 
    { 
    } 

同じコードが他のファイルで機能するときに変換されない理由はわかりません。

+0

これらは異なるタイプです。彼らはちょうど同じ名前を持つように起こります。 'BusinessComponent'のコンストラクタ定義を表示します。私はそれがパラメータの種類は異なると推測しています。 –

答えて

4

Consona.Business.ISessionContextM2MDomain.ISessionContextは2つの別々のクラスです。同じ名前が付けられているからといって、同じクラスであるというわけではありません。それらはまったく異なる名前空間に存在し、まったく異なるライブラリに存在する可能性があります。

ソースクラスのターゲットクラスに暗黙の変換演算子が定義されていない場合は、取得したエラーが発生します。

私はではありません。暗黙の変換を推奨しています。明示的に呼び出す必要がある変換関数を定義することをお勧めします。関数では、最初の型を2番目の型に手動で変換する必要がありますが、これはアプリケーションでは意味があります。

+0

ねえ、私はまだ問題が何かを理解していないが、私はエラーが私はM2MDomain.SessionContextに変換することはできませんと言うことを理解したISessionContext。 M2MDomainには、ISessionContextを含むSessionContextクラスが含まれています。だから今問題は、そのクラス内でISessionContextをどのように参照するのかということです。 – andrewvb

関連する問題