[c#] 의존성 주입(dependency Injection) 이란? 의존성 주입에 대한 추상적인 정의는 일단 접어두고 의존성 주입이라는 낯선 개념이 왜 필요한지 먼저 알아보겠습니다. 이 글을 읽기 전 선수 지식 포스팅 [c#] 업 캐스팅이란? [c#] 인터페이스란? 1. 예제 설명을 위한 준비사항(프로젝트 및 파일 생성) 클래스 라이브러리로 생성한 프로젝트 2개(ProjectA, ProjectB)를 구성합니다. 그리고 그 하위에 ProjectATest.cs, ProjectbTest.cs라는 파일을 생성하고, 아래와 같이 Test()메소드를 구현합니다. //ProjectATest.cs //ProjectBTest.cs 여기서 우리가 하고 싶은건 Program.cs 단에서 위 클래스들의 메소드를 사용하고 싶습니다. 일반적으로 다른 프로젝트의 메소드를 실행하려면 어떻게할까요? .. c# 2022. 8. 10. [c# blazor] NavigationManager LocationChanged 이벤트란? LocationChanged이벤트는 페이지를 이동할때 자동으로 발생되는 이벤트입니다. 이 글을 읽기 전 선수 지식 포스팅 [c#] 이벤트란? | 델리게이트와 차이 [c#] EventHandler란? 사용할때는 NavigationManager클래스를 inject하여 사용하는데요. NavigationManager 클래스 원문 코드로 들어가보면 LocationChanged라는 EventHander가 포함되어있습니다. EventHandeler 원코드로 들어가보면, LocationChangedEventArgs를 두번째 인자로 받도록 세팅되어있습니다. 그렇다면 LocationChangedEventArgs는 어떤 녀석일까요? Location과 IsNavigationIntercepted(boolean 형태)라는 프러퍼.. c#/blazor 2022. 7. 27. [c# blazor] NavigateTo를 이용한 특정 페이지 이동방법 일반적으로 버튼을 클릭하여 특정 url로 이동할때 href속성값을 이용합니다. 하지만 이번 포스팅에서는 href가 아닌 NavigateTo를 활용하여 특정 url로 이동하는 방법에 대해 알아보겠습니다. 먼저 아래와 같이 NavagationManager라는 클래스를 inject합니다. NavigationManagerReference는 해당 클래스를 사용하기위해 사용되는 이름이라 보시면 됩니다. 그렇기 때문에 아무렇게 이름을 적으셔도 상관없습니다. href를 지우고 onclick이벤트를 등록합니다. 해당 버튼을 누르면 GoToGoogle()이라는 함수가 실행되는 코드입니다. GoToGoogle()함수 바디에는 앞서 inject한 NavigationManagerRefrence 객체의 메소드인 NavigateT.. c#/blazor 2022. 7. 26. [c# blazor] c# 코드 비하인드 파일 생성하는 방법 blazor에서 제공하는 razor component 파일에는 UI단과 c#코드를 작성하는 코드 스페이스로 구성되어 있습니다. 하지만 코드가 길어지다 보면 코드 스페이스에 모든 코드를 작성하기 부담스러울때가 있는데요. 이럴때 코드 비하인드 파일을 통해 따로 코드를 관리하는게 편리합니다. 이번 포스팅은 코드 비하인드 파일 생성에 관련된 내용입니다. 예제로 사용할 Test.razor파일을 먼저 생성합니다. //Test.razor 코드 스페이스단에 작성한 프러퍼티값을 UI단에 출력하는 아주 간단한 코드를 작성 해보았습니다. (바인딩을 모르시는 분은 해당 포스팅 참조) output: 우리가 해보고 싶은것은 코드 스페이스 구간에 작성했던 것을 코드 비하인드 파일로 옮겨 똑같이 작동하는지 확인해보고 싶습니다. 그러.. c#/blazor 2022. 7. 25. [c# blazor] IJSRuntime이란? (자바스크립트 사용) 이번 포스팅에서는 블레이저에서 IJSRuntime을 통해 자바스크립트를 사용하는 방법에 대해 알아보겠습니다. 아래 예시처럼 버튼을 클릭하면 글자가 바뀌는 UI를 구성해볼건데요. 먼저 예제 코드를 작성할 Razor파일을 생성합니다. //JavascriptTest.razor 간단하게 UI를 구성해주고 버튼을 클릭하면 실행될 ChangeText()함수를 만들어 보았습니다. 빨간 사각형 부분이 자바스크립트와 연동시킬 함수를 넣는 부분인데요. 그에 앞서 c#코드에 자바스크립트 코드를 어떻게 작성할까요? //_Layout.cshtml _Layout.cshtml에 들어가서 문을 생성한 후 함수를 작성하면 됩니다. StartJS라는 이름의 함수로 작성을 해보았는데요, id값을 인자로 받고 있는 형태입니다. 즉 c#코드.. c#/blazor 2022. 7. 25. [c# blazor] 바인딩이란 ? (양방향, 단방향) 이번 포스팅에서는 블레이저에서 양방향(two-way) 바인딩 과 단방향(one-way) 바인딩이 무엇인지 알아보도록 하겠습니다. 예제를 작성할 razor파일을 생성합니다. //Example.razor routing 주소를 설정해줍니다. 1) one-way(단방향) 바인딩 @code 단에 들어있는 프러퍼티 값을 UI단에 출력 해보겠습니다. 원하는곳에 @를 붙혀주면 위 그림과 같은 방향으로 값이 전달 됩니다. output: 하지만 input창에 우리가 직접 값을 입력한다고 해서, ExValue값이 변경되지는 않습니다. 왜냐하면 code단에서 UI단으로만 전달되는 단방향(one-way) 바인딩이 적용되어있기 때문입니다. 그렇다면 UI단에서도 코드단으로 데이터를 넘겨주려면 어떻게 할까요? 그때 사용하는 것이 양.. c#/blazor 2022. 7. 22. [c#] Insert, Update, Delete 하는법 with EntityFramework (해당 포스팅은 이전 포스팅과 이어지는 글입니다.) 이번 포스팅에서는 EntityFramework를 이용하여 DB에 Insert, Update, Delete 를 적용하는 방법에 대해 알아보도록 하겠습니다. 현재 DB상황은 아래와 같습니다. 1) Insert Users.Add() 함수 인자로 User객체를 담는 형태로 DB에 Insert해줍니다. 값을 Insert한 후에는 SaveChanges()를 실행시켜줘야 DB에 저장된다는거 잊지 마시기 바랍니다. 하지만, 에러가 발생합니다. 왜 일까요? Id를 넣어주지 않았기 때문에 발생한 에러입니다. 우리가 만든 User클래스에 Id 프러퍼티가 설정되어 있으니까 당연히 채워줘야 겠지요. 수정 후 잘 추가 되었는지 확인해보겠습니다. 추가한 값이 잘 들어가 있는걸 확.. c# 2022. 7. 21. [c#] localdb에 EntityFramework 연결 하는 방법 이번 포스팅에서는 EntityFramework를 통해 localdb에 접속하는 방법에 대해 알아보도록 하겠습니다. 1. locadb에 테이블 생성 1) localdb 위치 확인 보기 => SQL Server 개체 탐색기를 클릭하면 왼쪽 편에 SQL server 개체 탐색기 창이 뜰텐데요. 여기서 SQL Server를 클릭해보면 현재 visual studio에 연결되어 있는 로컬 서버들이 보일것입니다. 2) DB 생성 두 서버 중 원하는 곳에 DB를 생성하면 됩니다. 우선 서버 하위에 있는 데이터베이스 폴더를 마우스 오른쪽 클릭합니다. 새 데이터베이스 추가를 누릅니다. 원하는 이름으로 데이터베이스 이름을 적습니다. 확인을 누르면 정상적으로 DB가 생성됩니다. 3) 테이블 구성 및 생성 DB를 생성했으니 그.. c# 2022. 7. 19. [엑셀 기초] 한개의 데이터로 여러 종류의 그래프 그리기 아래와 같은 데이터와 그래프가 있다고 하겠습니다. 여기서 빨간색 사각형 부분의 데이터 값을 가지고, 다른 종류의 그래프를 추가하고 싶습니다. 이번 포스팅에서는 꺾은 선 그래프를 추가하는것을 목표로 해볼게요. 우선 기존 그래프를 마우스 오른쪽 클릭하고 데이터 선택을 눌러줍니다. 기존에 만들어진 그래프에 대한 정보가 미리 세팅되어있을건데요. 여기에 추가 버튼을 눌러 새로운 범례항목을 추가해줍니다. 계열이름에는 원하는 이름을 넣어주면됩니다. 저는 꺾은 선이라 적어볼게요. 이어서 계열 값은 적용할 데이터의 범위를 넣어주는 부분인데요. 드래그를 통해 지정해줍니다. 완료가 되었으면 확인버튼을 눌러줍니다. 아래와 같이 두개의 bar그래프가 생성이 되었을 겁니다. 여기서 형태를 바꾸고 싶은 그래프를 클릭하여 계열 차트.. 엑셀 2022. 7. 18. [c#] LINQ First vs Single | FirstOrDefault vs SingleOrDefault 차이 이번 포스팅에서는 First와 Single을 비교하고 FirstOrDefault 와 SingleOrDefault의 비교를 통해 각각의 개념을 알아보도록 하겠습니다. 1) single() vs first() 1~9로 구성된 리스트에서 1에 해당하는 값을 추출하는 코드입니다. 각각 First와 Single을 이용했는데요. 어떤 결과가 나올까요? output: 같은 결과가 나왔습니다. 그렇다면 둘은 같은 것일까요? 이번에는 list를 조금 수정해보겠습니다. 1을 하나 더추가해서 2개로 만들었습니다. 그 후 Single메소드를 실행 시켜보겠습니다. output: 한개 이상의 요소를 포함하고 있어서 발생되는 에러라고 하는데요. Single의 경우 조건에 맞는 대상이 2개 이상이 있으면 안됩니다. 그렇다면, Fir.. c# 2022. 7. 15. [c#] SQL in / not in 기능을 LINQ로 구현 select * from db where id in (2,4,5) => id가 2, 4, 5에 해당되는 경우의 값을 뽑아라 즉 , 복수의 조건에 해당하는 데이터를 뽑아내고 싶습니다. 이를 LINQ로 구현하려면 어떻게 할까요? 설명을 위해 간단한 예시 코드를 작성하겠습니다. 1) Product 클래스 생성 2) Product 클래스를 담을 List 생성 해당 List가 db역할을 할것임으로 db라는 이름으로 지어보았습니다. 3) 배열 생성 in (2,4,5 )에 역할을 할 배열을 하나 만듭니다. 4) 쿼리 작성 배열의 Contains함수를 통해 배열에 포함되어 있는 값을 확인하면서, 배열에 있는 값만 query에 저장하는 구조입니다. 만약 not in 기능을 사용하고 싶다면, 앞에 !(느낌표)를 붙혀 주면.. c# 2022. 7. 15. [wpf] System.IO.IOException: ''mainwindow.xaml' 리소스가 없습니다.’ 에러 해결방법 혹시 아래와 같은 창이 뜨면서 에러가 발생하시나요? 해당 에러는 일반적으로 MainWindow.xaml파일을 다른 폴더로 옮겼는데, App.xaml에 파일에서 설정을 바꿔주지 않아 발생하는 에러입니다. 가령 MainWindow.xaml파일을 Views폴더 아래로 이동시켰다고 해보겠습니다. 그리고 app.xaml파일에 들어가보겠습니다. //app.xaml StartupUri에 적힌 MainWindow.xaml의 위치가 업데이트 되지 않았습니다. 그래서 에러가 발생한것입니다. 즉, 아래와같이 수정된 파일 주소를 넣어주셔야 합니다. c#/wpf 2022. 7. 14. 이전 1 ··· 15 16 17 18 19 20 21 ··· 32 다음