반응형

C#을 이용하여 wpf 로 작성된 프로그램을 빌드 시 릴리즈 폴더에 수많은 dll파일과 하나의 exe파일이 생성되는데 배포 시 어려움이 있다.

 

예전에는 nuget 패키지에 관련 툴(Costura.Fody)가 있었는데 최근에는 업데이트가 이루어지지 않는지 적용에 어려움이 있어 아래와 같은 방법을 찾았다.

 

프로젝트를 오른쪽 마우스 눌러서 게시옵션을 아래와 같이 추가한다.

 
 

이후 빌드 후 게시를 눌러 publish 디렉토리 하위에 exe파일 하나와 pdb파일 하나씩만 생성된 것을 확인 할 수 있다.

반응형
        public static byte[] StructToByteArray(object objStruct)
        {
            int nSize = Marshal.SizeOf(objStruct);
            byte[] arr = new byte[nSize];
            IntPtr ptr = Marshal.AllocHGlobal(nSize);
            Marshal.StructureToPtr(objStruct, ptr, false);
            Marshal.Copy(ptr, arr, 0, nSize);
            Marshal.FreeHGlobal(ptr);

            return arr;
        }

        public static T ByteArrayToStruct<T>(byte[] buffer) where T : struct
        {
            int nSize = Marshal.SizeOf(typeof(T));

            if (nSize > buffer.Length)
            {
                throw new Exception();
            }

            IntPtr ptr = Marshal.AllocHGlobal(nSize);
            Marshal.Copy(buffer, 0, ptr, nSize);
            T objStruct = (T)Marshal.PtrToStructure(ptr, typeof(T));
            Marshal.FreeHGlobal(ptr);
            return objStruct;
        }
반응형

큐넷에 올라온 정보처리기사 필기 출제기준을 PDF로 변환하여 게시한다.

 

정보처리기사 출제기준(2023.1.1._2025.12.31).pdf
0.23MB
정보처리기사 출제기준(2023.1.1._2025.12.31).hwp
0.08MB

반응형

값의 비율을 퍼센티지(Percentage)로 계산할 때에는 보통 아래의 수식을 사용했다.

이는 0부터 최대값 범위 내에서 특정 값의 비율을 산정하는 것으로 특정 범위내에서 비율을 계산하려면 다음과 같은 공식을 사용하면 된다.

특정값(Value)에서 최소 범위값을 빼준 것을 최대-최소 범위 사잇값으로 나눠주면 된다.

반응형

c# 개발을 시작하면서 api로 데이터교환시 json포맷을 많이 사용하는데

 

그에 따라 json 각 속성들을 하나하나 클래스나 구조체 형식으로 구현해서 파싱을 했었는데

 

이 사이트에 샘플 코드만 넣어주면 해당 속성값으로 클래스가 자동으로 생성된다.

 

참고하면 좋을듯 하여 공유해본다.

 

사이트 주소: https://json2csharp.com/

 

Convert JSON to C# Classes Online - Json2CSharp Toolkit

 

json2csharp.com

 

반응형

c#에서 json object(Newtonsoft.Json 패키지 사용)을 간단하게 DataTable 형식으로 변환하는 방법을 공유한다.

 

이 방법을 알기 전에는 컬럼 하나하나씩 모두 파싱해서 넣어줬는데, 간단하게 끝나니 업무량이 줄어들었다.

 

DeserializeObject함수에 DataTable 형식을 지정해주고 string으로 변환된 json object를 넘겨주면 된다.

string strJson = @"[{'color':'red','value':'#f00'},{'color':'green','value':'#0f0'},{'color':'blue','value':'#00f'},{'color':'cyan','value':'#0ff'},{'color':'magenta','value':'#f0f'},{'color':'yellow','value':'#ff0'},{'color':'black','value':'#000'}]";
DataTable dtTable = JsonConvert.DeserializeObject<DataTable>(strJson);

+ Recent posts