以下のようにインターフェイスを作成しました。 DTOオブジェクトは、3つのパラメータを持つ複合値オブジェクトです。インターフェイスで使用する必要があるクラスを拡張する
public interface IOperation
{
DTO Operate(DTO ArchiveAndPurgeDTO);
}
元のValueオブジェクトから継承し、必要に応じて拡張できるようにするには、このインターフェイスを援助する人が必要です。
私は、単にDTOオブジェクトを継承し、別のプロパティを追加して、このインターフェイスを暗示するのと同じクラスで使用すると仮定しました。
拡張値オブジェクトを使用しようとすると、Visual Studioは、もはやインターフェイスを実装していないと訴えます。
この機能をどのようにすることができますか。
ご意見、ご提案などありがとうございます。
Gineer
編集: DTOコード:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Company.ArchiveAndPurge
{
public class DTO
{
public DTO(String FriendlyID)
{
friendlyId = FriendlyID;
}
private String friendlyId = String.Empty;
public String FriendlyId
{
get { return friendlyId; }
set { friendlyId = value; }
}
private String internalId = String.Empty;
public String InternalyId
{
get { return internalId; }
set { internalId = value; }
}
private Boolean archivedSuccessfully = false;
public Boolean ArchivedSuccessfully
{
get { return archivedSuccessfully; }
set { archivedSuccessfully = value; }
}
}
}
拡張DTO:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Company.MSO.ArchiveAndPurge
{
public class DTO: Company.ArchiveAndPurge.DTO
{
private Boolean requiresArchiving = true;
public Boolean RequiresArchiving
{
get { return requiresArchiving; }
set { requiresArchiving = value; }
}
}
}
VSが苦情
インタフェースの実装:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Company.ArchiveAndPurge.Contracts;
using Company.ArchiveAndPurge;
namespace Company.MSO.ArchiveAndPurge
{
public class ResolveFriendlyId: IOperation
{
#region IOperation Members
public DTO Operate(DTO ArchiveAndPurgeDTO)
{
ArchiveAndPurgeDTO.InternalyId = ArchiveAndPurgeDTO.FriendlyId;
return ArchiveAndPurgeDTO;
}
#endregion
}
}
表示DTOクラス私はあなたが一般的なインタフェースを作りたいかもしれない疑い
を:このようなコードと互換性があるような方法でコードとコードここでVSはエラーを返す – sll