public class ExternalUserService : ServiceBase<ExternalUser>, IServiceBase<ExternalUser>, IDisposable
{
public ExternalUserService():base()
{enter code here
}
public ExternalUserService(IBusinessEntityMap entityMap,string ConnectionString)
{
repository = new BusinessModelRepository(typeof(ExternalUserMap), ConnectionString);
}
}
[ServiceContract(ConfigurationName = "IServiceBase", Namespace = "http://xyz.com")]
public interface IServiceBase<TEntity> where TEntity : BusinessEntityBase<TEntity>, new()
{
[OperationContract]
}
[DataContract(IsReference = true)]
public class ExternalUser : BusinessEntityBase<ExternalUser>
{
//some entity work
}
エンティティに基づいて単一のホストを持つことができるように、サービス ホスト ファクトリを作成しようとしています。1つのホストを持つことができるように。何かのようなもの
<%@ ServiceHost Factory="Service.BaseServiceFactory`1[BusinessEntityBase<ExternalUser>,IServiceBase<ExternalUser>,ExternalUser]"
Language="C#" Debug="true" Service="いくつかの汎用サービス"%>
public class BaseServiceFactory<x,y,z> : ServiceHostFactory
where x : BusinessEntityBase<y>,new()
where z : IServiceBase<x>
where y : class,new()
{
protected override System.ServiceModel.ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses)
{
ServiceHost host = new ServiceHost(serviceType, baseAddresses);
ServiceEndpoint endpoint = host.AddServiceEndpoint(typeof(z), new BasicHttpBinding(), "");
return host;
}
}
public abstract class BusinessEntityBase<TEntity> : IBusinessEntity<TEntity>
where TEntity : class, new()
{
}
10 行目 (BaseServiceFactory クラスの宣言) で以下のエラーが発生します。
型 'x' は、ジェネリック型またはメソッド 'Service.IServiceBase' の型パラメーター 'TEntity' として使用できません。「x」から「BusinessModel.BusinessEntityBase」への暗黙的な参照変換はありません。D:\Service\BaseServiceFactory.cs 10 18 Security.Service