분류 전체보기 썸네일형 리스트형 [C#] Action과 Func의 차이점 Action제너릭 인수가 전부 파라미터에 이용됩니다. 값을 반환할 수는 없습니다. Action foo = (string arg) => { /* return은 사용할 수 없습니다. */ }; Action foo = (string arg1, string arg2) => { /* return은 사용할 수 없습니다. */ }; Func마지막 제너릭 인수가 리턴 타입으로 사용됩니다. 나머지는 파라미터로 이용됩니다. Func foo = () => { return "hello"; }; Func foo = (string arg) => { return "hello"; }; 더보기 [Nancy] 에러 핸들링, 핸들러 등록하기 라우터가 요청을 처리중에 발생한 익셉션을 전역적으로 한군데서 받아서 처리할 수 있다. IApplicationStartup을 구현한 클래스가 public으로 존재할 경우, 별도의 초기화/등록 코드 없이도 Nancy가 알아서 해당 클래스를 파이프라인에 등록한다. /// /// 요청 처리 중 발생한 익셉션에 대한 정보를 /// 정형화된 ResponsePacket 형태로 만들어서 알려준다. /// public class ExceptionHandler : IApplicationStartup { public void Initialize(IPipelines pipelines) { // ctx : NancyContext // ex : Exception pipelines.OnError += (ctx, ex) => { l.. 더보기 [ionic] 로컬 앱 OAuth2 인증 수행하기 로컬에서 동작하는 웹앱에서도 제공되는 REST API등을 사용하기 위해 OAuth 인증(구글, 페이스북 등)을 지원해야 하는 경우가 종종 있습니다. 기본적인 OAuth에서는 로그인 단계에서 로그인 제공자가 앱 개발자쪽으로 콜백을 주는 부분이 있는데 이를 별도의 서버를 두지 않고도, 인앱 브라우저의 이벤트를 구독하여 url을 받아 파싱하는것만으로 처리할 수 있습니다. 예제는 Quizlet.com 의 OAuth를 구현하는것으로 작성하였습니다.(https://quizlet.com/api/2.0/docs/authorization-code-flow) 예제를 실행하기 위해서는 InAppBrowser 플러그인을 설치해 주세요 // 로그인 버튼을 누르면 실행되야 하는 함수 $scope.login = function (.. 더보기 [Cordova] INSTALL_FAILED_VERSION_DOWNGRADE 에러 발생 시 2>throw e;2>^2>ERROR: Failed to launch application on device: ERROR: Failed to install apk to device: pkg: /data/local/tmp/android-armv7-debug.apk2>Failure [INSTALL_FAILED_VERSION_DOWNGRADE] Visual Studio + Cordova 환경에서 개발 시, 위와 같은 에러가 발생하면서 디바이스에 앱을 올리는것이 실패할 때, 프로젝트 폴더 -> platforms/android/cordova/lib/device.js약 101번째 라인을 아래와 같이 수정한다 var cmd = 'adb -s ' + resolvedTarget.target + ' install -r -.. 더보기 [Ionic] ionic framework 스크롤 속도 문제 http://blog.ionic.io/announcing-ionic-1-2/ Native ScrollingBy default, Ionic 1.2 will use native scrolling on all platforms. When we first built Ionic, native overflow scrolling was very buggy in the browser, and to bring parity with features we’ve come to expect from mobile apps, such as pull-to-refresh and virtual scrolling, we decided we needed to have full control over our scroll view, so we.. 더보기 [Parse] background job 사용하기 Parse SDK 에서 background job을 이용하여 일정 주기, 또는 일정 시점에 코드를 실행시킬 수 있습니다. (batch, cronjob 기능) 이 background job 기능을 사용하여 매일 24:00 시 마다 오늘의 유저 랭킹 등을 계산하는 기능을 제작하는것이 가능합니다. 또는 일정 주기마다 플레이어에게 돈을 주는 작업 (하지만 이런 작업은 백그라운드 잡이 아닌 다른 방법으로 구현하는게 좋다고 생각합니다.) 또한 수행할 수 있습니다. parse command line tool 설치하기https://github.com/ParsePlatform/parse-cli/releases/tag/release_3.0.3 먼저 서버 코드를 deploy 하기 위해 명령줄 프로그램이 필요합니다. 위 링크.. 더보기 test 더보기 [IL2CPP] Assembly.GetCallingAssembly 가 동작하지 않을 때 IL2CPP 환경에서 Assembly.GetCallingAssembly().GetTypes() 메소드가 기대한 것과 같이 동작하지 않을 때 어셈블리 문제알 수 없는 이유(버그?) 로 Assembly.GetCallingAssembly() 메소드는 Mono2x 일때와 IL2CPP 일 때 다른 값이 반환됩니다. 이를 해결하기 위해 해당 메소드 대신 typeof(FooType).Assembly 식의 접근법으로 어셈블리를 가져오는것으로 고칠 수 있습니다. (FooType은 찾고자 하는 어셈블리 안에 들어있는 타입이어야 합니다.) (또는) 코드 스트리핑 http://docs.unity3d.com/kr/current/Manual/iphone-playerSizeOptimization.html 스트립은 정적 코드 분석에.. 더보기 Jenkins & Slack 연동하기 + 젠킨스와 슬랙을 연동하여, 젠킨스의 빌드 시작, 성공 여부, 빌드 이슈등의 알림을 슬랙 메신저를 통해 실시간으로 받아볼 수 있습니다.일반적으로 빌드 시작 등의 이벤트는 별로 의미가 없지만, 빌드 실패 또는 테스트 실패같은 중요한 이벤트의 경우 슬랙으로 실시간으로 푸시와 알림을 받을 수 있기 때문에 유용합니다. (현재 개발중인 C# 프로젝트를 연동해서 쓰고 있는데 매우 편리합니다.) 먼저 젠킨스의 플러그인 관리 페이지에 접속합니다. 그 후 SlackNotification Plugin을 검색하여 설치합니다. (프로젝트 페이지 : https://github.com/jenkinsci/slack-plugin) 설치 후 젠킨스를 재시작한 뒤, 아래 주소로 접속합니다. 슬랙에는 로그인이 유지된 상태여야 합니다. .. 더보기 [C#] Redis Pub/Sub 사용하기 redis의 pubsub 기능 사용하기. 채널 구독하기 var client = ConnectionMultiplexer.Connect("localhost"); var pubsub = client.GetSubscriber(); pubsub.Subscribe( "channel", (RedisChannel ch, RedisValue val) => { Console.WriteLine(ch + " : " + val); }); 채널에 방송하기 pubsub.Publish("channel", "msg1"); pubsub.Publish("channel", "msg2"); pubsub.Publish("channel", "msg3"); 여러개의 채널 구독하기 pubsub.Subscribe( "chatting.*", (Redi.. 더보기 이전 1 ··· 3 4 5 6 7 8 9 ··· 11 다음