LoadXml 함수 질문입니다.
388
작성한 질문수 11
private Loader LoadXml<Loader, Key, Item>(string name) where Loader : ILoader<Key, Item>, new()
{
XmlSerializer xs = new XmlSerializer(typeof(Loader));
TextAsset textAsset = Resources.Load<TextAsset>("Data/" + name);
using (MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(textAsset.text)))
return (Loader)xs.Deserialize(stream);
}
제공해주신 코드가 Unity강좌에서 JsonUtility 다루셨을 때 코드와 비슷해서 어느 정도 이해할 수 있었습니다. 하지만 코드에서 궁금한 부분이 존재해서 질문 남깁니다.
1.기존에 배웠던 코드와는 다르게 Loader where 조건 부분 마지막에 new()는 어떤 의미 인가요?
using 부분에 정확한 의미를 모르겠습니다. 대략 리딩해보면 TextAsset을 MemoryStream 형식으로 변형해서 역직렬화하는 것 같은데 MemoryStream이 어떤 것인지 궁금합니다.
항상 좋은 강의 올려주셔서 감사합니다.
답변 1
0
1.
이런 상황에서는 where new() C# 을 구글에 검색하시면 됩니다.
https://learn.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/new-constraint
Loader라는 애가 기본 생성자로 new()를 할 수 있어야 한다! 는 제약입니다.
2.
1보다는 조금 어려운 상황인데, 구글에 C# using dispose 를 검색하시면 됩니다.
객체 사용이 끝났을 때 자동으로 메모리를 정리하거나 Stream를 정리해주는(?) 기능과 연관이 있습니다.
0
이해했습니다. 감사합니다. 한 가지 더 질문이 있는데 그렇다면 UTF8로 인코딩 하는 이유는 단순 XML 파일에 있는 텍스트를 읽어올 때 한글이 깨지는 것을 방지하기 위해 사용하는 것일까요 ?
dotween pro와 dotween
0
106
2
SceneType 질문
0
60
2
소스코드 문의
0
80
1
유니티6 6000.0.0.35f1 버전을 사용하는데 잘 됩니다~
0
364
1
코드 분석하면서 강의 복습중인데 질문 있습니다!
0
228
1
이전에 프레임웍을 만들때라는 말씀
0
221
1
Missing (Mono Script)
0
417
1
그냥 씬 자체가 실행이 안됩니다..
0
652
2
어떡하죠?
0
695
2
unity 다운 시간
0
283
0
바인드가 안돼요
0
324
1
Update문을 호출하기전에 왜 호출하는게 자기자신인지 확인하나요?
0
201
1
안녕하세요! 시작...부터 조금 막혔어요..ㅠㅠ 도와주세요
0
4741
2
버튼 조작을 해주는 스크립트 위치
0
300
1
RefreshUI(); 기능이 궁금합니다.
0
297
1
Action Invoke할때 ?는 뭔가요?
1
427
1
데이터 읽기 쓰기에 관련해서 질문 있습니다.
0
385
1
Scene탭에 Auto Save 어떻게 활성화시키나요?
0
1362
1
루키스님 바쁘시겠지만 혹시 한 번만 봐주실 수 있나요?
0
442
1
함수호출 순서관련해서 질문있습니다.
0
429
1
DataManager 관련 질문
0
464
2
갑자기 바인드가 되지 않습니다.ㅠㅠ
0
380
1
저작권 관련 질문이 있습니다.
1
525
1
Visual studio 스타일
0
442
1





