參考借鑒ABP中提供的擴展性
持續更新....
實現一:
定義一個接口
public interface IMessageWriter
{
string Write();
}
定義一個實現,這個實現是要被另外的一個實現類代替的:
public class ConsoleMessageWriter : IMessageWriter, ITransientDependency
{
public string Write()
{
return "ConsoleMessageWriter.Write";
}
}
替代的實現類:
[Dependency(ReplaceServices = true)] // 調用了asp.net core中的services.replace實現
public class ReplaceMessageWriter : IMessageWriter, ITransientDependency
{
public string Write()
{
return "ReplaceMessageWriter.Write";
}
}
這里的
ITransientDependency
接口Dependency
特性都是ABP中的。
實現二:
接口定義:
public interface IBrandProvider
{
string AppName { get; }
}
默認實現類:
public class DefaultBrandProvider : IBrandProvider, ITransientDependency
{
public DefaultBrandProvider() { }
public virtual string AppName { get => "DefaultBrandProvider"; }
}
替換類:
[Dependency(ReplaceServices = true)] //如果沒有此特性,那么接口的實現類有兩個。
public class ReplaceBrandProvider : DefaultBrandProvider
{
public override string AppName { get => "ReplaceBrandProvider"; }
}
實現三: