NonSchema에서 Dictionary<string, Param>저장시 오류

데이터 타입에 Dictionary<string, Param>형식을 지원한다 적혀있어 사용해 보니 실제로 잘 적용되어있는 값이
image
이렇게 출력되고 있네요. 지원이 아직 안되는건가요?

안녕하세요 개발자님

해당 타입은 정상적으로 지원하고 있는데요,

저장을 시도 하시려는 데이터의 전체와,

데이터를 저장하는 소스코드의 공유를 부탁드리겠습니다.

감사합니다.

Dictionary<string, Item> consumableItems = new Dictionary<string, Item>();
var dict1 = consumableItems.ToDictionary(key => key.Key, value => value.Value.ToParam());
returnValue.Add("ConsumableItem", dict1);
List<Dictionary<string, Item>> equippedItemsList = new List<Dictionary<string, Item>>();
for (var i = 0; i < Constraints.ITEM_SLOT_COUNT; ++i)
{
    var dict = equippedItemsList[i].ToDictionary(key => key.Key, value => value.Value.ToParam());
    returnValue.Add($"EquippedItem{i}", dict);
}
public struct Item
{
.
.
.
    public BackEnd.Param ToParam()
    {
        var param = new BackEnd.Param();

        param.Add("isLock", isLock); // bool
        param.Add("name", name); // string
        param.Add("num", num); // int
        param.Add("level", level); // int
        param.Add("durationTime", GetDurationTime); // int
        param.Add("options", options != null ? 
            options.Select(value => string.Format("E{0:D}", value)).ToList() : null); // List<enum>을 List<string>으로
        param.Add("values",  values); // List<double>

        return param;
    }
}

이렇게 사용하고 바로 Backend.GameInfo.Insert()를 통해 param을 넣어주고 있습니다.

개발자님

코드 공유해주셔서 감사합니다.

올려주신 코드를 살펴보았는데요,

List내 Dictionary가 존재하는 것 같은데,

list의 경우 dicrionary를 아직 지원하지 않습니다

list는 아래 데이터 타입 만을 지원하고 있습니다.

참고부탁드리겠습니다

데이터 형
List< string>
List< int>
List< doubler>
List< long>
List< byte>
List< bool>
List< param>
List< jsonData>

그것또한 확인을 해서 코드를 확인해 보시면 for문을 통해 하나씩 일일이 저장하고 있는 코드가 존재 합니다. 또한 ConsumableItem또한 Dictionary<string, Item> => Dictionary<string, Param>의 형태로 저장하지만 내부 저장소를 보면 재대로 저장이 안되는 모습이 보입니다.

image

위의 간단한 코드로 태스트 해본 결과 저장이 재대로 되지 않는것이 확인 가능합니다.

확인해보니 SDK에서 Param을 변환할 때 내부에서 건너뛰는 에러를 확인하였습니다

이용에 불편을 드려 죄송합니다.

해당 부분은 Param을 저장하지 않고,

Item 클래스 자체를 저장하는 식으로 사용을 추천드리겠습니다.

Dictionary 내 class가 존재하면, public 변수들은 param에 모두 추가될 것 입니다.

또한 해당 버그는 근시일 내 픽스를 수행하도록 하겠습니다.

피드백 감사드립니다.

버그인 게 맞다니 다행이군요. 수정이 빠른 시일 안에 됐으면 좋겠습니다.

수고하셨습니다.