본문 바로가기

프로그래밍 언어 노트/C#

(22)
[C#] Properties to Dictionary static Dictionary ToDictionary(object obj) { return obj?.GetType() ?.GetProperties(BindingFlags.Instance | BindingFlags.Public) ?.ToDictionary(prop => prop.Name, prop => prop.GetValue(obj)); } 프로퍼티를 key-value 쌍인 Dictionary 로 바꾸기 위해서 리플렉션과 LINQ를 사용한다.
[UWP] 사용자 라이브러리 UWP 에서 사용 다른 플렛폼에서도 동작하는지는 모르겠으나.. UWP 에서 참조로 다른 라이브러리 [사용자 라이브러리] 등을 추가할 때 추가자체가 안되거나 uap10.0.17763(UAP,Version=v10.0.17763) / win10-arm 에서 어쩌구 하는 에러가 보일때가 있다. 이는 UWP 에서는 프레임워크를 설정하는것이아니라 타겟 버전을 설정하기떄문이다 (안드로이드와 유사하다) 따라서 내가 만든 라이브러리의 닷넷 프레임워크,코어,스텐다드 등의 버전이 대상에 맞게 지정되어있는데 여기에 안맞는다는 말이다. 라이브러리의 버전을 낮추는등의 조절을 통하여 맞춰야지만 사용할수있다. https://docs.microsoft.com/ko-kr/windows/uwp/updates-and-versions/choose-a-uwp-..
[UWP] 브로드 파일 권한 획득 [제한된 접근 권한 값] 사용 UWP 로 아이콘을 가져오는 프로그램좀 짜려고 했는데 UWP 는 안드로이드 어플리케이션 마냥 기능마다 퍼미션 허가를 받아야한다. 기본적으로 매니패스토 설정에 비주얼로 보여주지만 제한된 접근 권한은 더 숨겨놔서 파일을 수정해야한다. https://docs.microsoft.com/ko-kr/windows/uwp/packaging/app-capability-declarations 앱 접근 권한 값 선언 - UWP apps Windows 앱의 패키지 매니페스트에서 기능을 선언 하 여 카메라 또는 마이크와 같은 사진, 음악 또는 장치와 같은 리소스 또는 특정 API에 액세스 해야 합니다. docs.microsoft.com ... //참고로 맨위에 두라는듯. ... 본인같은 경우 파일접근을위해서 브로드 파일시스템..
크로스 쓰레드 문제해결하기 (컨트롤 제어하기) 윈폼이나 WPF 에서 TextBox, ListView, Label 과 같은 컨트롤을 다른 스레드에서 접근하거나 변경하면 UI 쓰레드에 반영이되거나 Cross Thread Exception 이 발생한다. Invoke (BeginInvoke)나 BackgroundWorker를 사용해야한다. Invoke는 폼이나 컨트롤은 다 가지고 있다. Invoke에 람다식을 넣어도 무방 -> 버전이 낮으면 람다식이 안되는듯, new MethodInvoker(() => { }) 같이 Method Invoker 를 넣어주자 BackgroundWorker는 쓰레드 대신? 사용해서 작업을 맞기면 된다. BackgroundWorker은 다음 이벤트를 가지고있다. 1. DoWork 백그라운드 작업 2. ProgressChanged ..
[UWP] Fullscreen using Windows.UI.ViewManagement; public App() { this.InitializeComponent();//기본코드 this.Suspending += OnSuspending;//기본코드 ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.FullScreen;//FullScreen 코드 } UWP 프로그램에서 기본으로 풀스크린을 사용할라면 App.cs 에서 (Main 아님, XAML 아님) 풀스크린 설정을 하면 된다.
[UWP] UWP 를 위한 2D 렌더링 엔진 Win2D https://github.com/Microsoft/Win2D microsoft/Win2D Win2D is an easy-to-use Windows Runtime API for immediate mode 2D graphics rendering with GPU acceleration. It is available to C#, C++ and VB developers writing apps for the Windows Universal Platf... github.com https://microsoft.github.io/Win2D/html/Introduction.htm Introduction Win2D is an easy-to-use Windows Runtime API for immediate mode 2D ..
[C#] C# 으로 작성하는 풀스택 웹앱 Blazor https://dotnet.microsoft.com/apps/aspnet/web-apps/client Blazor | Build client web apps with C# | .NET Blazor is a feature of ASP.NET for building interactive web UIs using C# instead of JavaScript. It's real .NET running in the browser on WebAssembly. dotnet.microsoft.com https://docs.microsoft.com/ko-kr/aspnet/core/blazor/?view=aspnetcore-3.0 ASP.NET Core의 Blazor 소개 ASP.NET Core 앱에서 .NET을 사용하여..
[C#] Json / XML to Class 붙여넣기 C# 뿐만 아니라 VS 의 .Net 언어들에서 제공되는 기능이다. 통신하거나 데이터 처리할때 Json 혹은 XML 을 사용하는데 이걸 받아서 코드에서 사용할때 ORM 용으로 클래스를 만들거나 하는데 이걸 많으면 하기가 너무 귀찮다.. 근데 C# 의 경우 자동으로 만들어주는것이 존재한다. 예를 들어 { "name": "See-Ro-E", "blog": "https://see-ro-e.tistory.com" } 라면 편집 -> 선택하여 붙여넣기 -> JSON / XML 을 클래스로 붙여넣기 를 하면 public class Rootobject { public string name { get; set; } public string blog { get; set; } } 이런식으로 만들어준다. C++ 에서는 안되는..