파일을 처리하는 일반적인 방법을 만들어야합니다. 파일로 수행해야하는 작업에 따라 특정 클래스를 사용해야합니다. ASP와 C #을 사용합니다. 파일이 업로드되고, 파일을 분석하고, 분석 결과 객체를 생성하고 해당 객체를 기반으로 한 분석 결과를 사용자에게 보여줍니다. 사용자는 분석 결과를 읽고 진행 (버튼 클릭) 여부를 결정합니다. 그가 그렇게한다면 그 분석 결과 객체를 취하고 그에 따라 조치 (처리)를 수행합니다. 처리 결과를 사용자에게 보여줍니다.
일부 쿼리 매개 변수에 따라 (간단 함을 위해) 파일은 다른 클래스에서 처리되어야합니다. 프로세서는 분석기의 구체적인 구현에 대한 특정 분석 결과가 필요합니다 (한 파일 분석 결과에는 사용자 정의 클래스 목록이 포함될 수 있으며 다른 파일 분석 결과에는 다른 특정 필드가 포함될 수 있음). 프로세서는 작업을 수행하기 위해 구현 관련 세부 정보가 필요합니다.
일반 프로젝트를 만들려고했지만 막혔습니다.
팩토리의 magicId는 파일을 구문 분석 / 분석하는 데 사용해야하는 클래스를 지정하는 쿼리 매개 변수입니다.
모두 일반 형식의 인터페이스를 구현하는 클래스의 작업 팩토리를 만드는 방법이 있습니까?
abstract class AnalysisResult
{
}
interface IAnalyzer<TAnalysisResult>
where TAnalysisResult : AnalysisResult
{
TAnalysisResult PerformAction(string input);
}
class ConcreteAnalysisResult : AnalysisResult {
public int SpecificProperty { get; set; }
}
class ConcreteAnalyzer : IAnalyzer<ConcreteAnalysisResult>
{
public ConcreteAnalysisResult PerformAction(string input)
{
return new ConcreteAnalysisResult() { SpecificProperty = input.Length };
}
}
class AnAnalyzerFactory
{
IAnalyzer<AnalysisResult> CreateByMagicId(int magicId)
{
return new ConcreteAnalyzer();
}
}
TAnalysisResult
공변으로 선언하십시오 . 자세한 내용은 공분산 및 반공 분산을 확인할 수 있습니다.
interface IAnalyzer<out TAnalysisResult> // note out keyword
where TAnalysisResult : AnalysisResult
{
TAnalysisResult PerformAction(string input);
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다