아래와 같은 코드가 있다. int testA = -1; var testB = (uint)testA; 이때 testB는 뭐가 될까?? uint니까 1이될까?? 땡이다. 위의 코드에 로그를 달아 찍어보자. int testA = -1; var testB = (uint)testA; Console.WriteLine("testA : " + testA); Console.WriteLine("testB : " + testB + ", uint max =" + uint.MaxValue +", if(testB == uint.maxValue)" + (testB == uint.MaxValue)); 흥미롭게도 testB는 예상외의 숫자가 되었다. 4294967295가 의미하는건 뭘까? 바로 uint.maxvalue 값이다..
STATE 패턴 STATE 패턴이란? 객체의 상태에 따라 객체의 행위가 달라 질 때 사용 상태별 행위를 별도의 클래스에서 구현함으로써 코드 분리가 가능, 새로운 상태를 유연하게 추가 확장 할 수 있음 if/else 블럭으로 구현하는것보다 state 패턴을 사용하여 각 상태별로 구현하는것이 효율적일 수 있음 사용 예 , CODE internal class Program { static void Main(string[] args) { var testPlayer = new TestPlayer(); testPlayer.ChangeState(new LoginState()); Console.ReadLine(); } } Main.cs public class TestPlayer { public PlayerState P..
nuget 설치 JWT 설치 Install-Package JWT -Version 10.0.0-beta5 System.IdentityModel.Tokens.Jwt 설치 Install-Package System.IdentityModel.Tokens.Jwt -Version 6.21.0 설명 apn 인증용 p8코드를 미리 발급받아 준비한다. 준비한 p8을 읽어 앞 뒤의 "private key" 키워드 삭제 줄바꿈을 공백으로 변경 준비된 p8데이터를 MakeToken 함수에 넣음. CODE // p8데이터 읽음 var p8Data = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "\\p8data.p8"); Console.WriteLine(p8Data); /..
[에러 내용] C#Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VisualStuio\v16.0\Web\Microsoft.Web.Publishing.Task.dll 어셈블리에서 "TransformXml" 작업을 로드 할 수 없습니다. 파일이나 어셈블리'file:///C#Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VisualStuio\v16.0\Web\Microsoft.Web.Publishing.Task.dll' 또는 여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다. 지정된 파일을 찾을 수 없습니다. 선언이 올바른지, 어셈..
mysql + dapper를 사용하는데 위의 에러를 만났다. 에러 내용은 "중첩된 트랜잭션은 지원하지 않는다" 인데 해당 코드를 가서 보니까 using(var tran = new TransactionScope()) { 1. 특정 조건에만 트랜잭션을 사용하는 AADB를 open함 2. 언제나 BBDB를 트랜잭션 사용 없이 open함 } 이렇게 되어 있었다. 이미 밖에서 TransactionScope를 사용하기때문에 AADB의 트랜잭션을 사용할 필요가 없었던것. 그래서 AADB open시 using(var db = new AADBConnector()) { } 방식으로 수정했다.