이 글에서는 ILGenerator를 사용하여 C#에서 동적으로 함수를 생성하는 간단한 코드를 주로 소개합니다. 필요한 친구들은 참고하면 됩니다.
게임 서버에는 항상 읽어야 할 구성 파일이 많고, 이러한 구성 파일은 다음과 같습니다. * 필수 그렇지 않으면 단순히 문자열이나 숫자의 묶음인 약한 유형으로 만들어지며 오류를 볼 수 없습니다(다시 확인해야 함) * 그렇지 않으면 강한 유형으로 만들어지며, 각 유형은 자체적으로 구문 분석되어야 합니다
저는 개인적으로 후자를 선호합니다. 이전 LoadConfig의 코드는 간단하지만 로직 작성 시 코드가 간단하지 않기 때문입니다.
class Config1 : public IConfig { public void Fill(EntryLine& line); int32_t param1; string param2; std::vector<int32_t> param3; }; void Config1::Fill(EntryLine& line) { this->param1 = line.ReadInt32(); this->param2 = line.ReadString(); this->param3 = line.ReadVectorInt32(); }
대략적인 채우기 기능은 위에 쓴 것과 같습니다. , 하지만 ReadInt32와 같은 함수는 허구이며 직접 구현해야 합니다(흠)
그러면 이런 종류의 코드는 작성하기가 매우 짜증나고 실제로 작성하고 싶지 않습니다. 이것이 바로 이 글을 쓰는 이유입니다.
C#에는 XML 역직렬화가 있습니다. 저는 다음과 같이 클래스를 정의합니다.class Config1 { int32 param1; string param2; int[] param3; } XmlSerializer serializer = new XmlSerializer(typeof(Config1)); var obj = (Config1)serializer.Deserialize(stream);
위 내용은 C#에서 ILGenerator를 사용하여 함수 인스턴스를 동적으로 생성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!