A 라는 프로젝트에서 B 라는 DLL 을 호출하여 해당 DLL의 메소드에 값을 넘겨주는 방법..

안녕하세요 . DLL 호출과 사용법에 대하여 질문 드립니다.

우선 A 라는 REST API 로 만들어진 프로젝트가 있구요. B라는 프로젝트는 클래스 라이브러리로 만들어서, A 프로젝트에 B 의 DLL 파일을 참조 시켰습니다.

그리고 A 프로젝트의 API 로 post 요청을 보내는데 이 때 BaseData 라는 클래스에 post 요청시에 넘어온 데이터가 담깁니다. 이렇게 담긴 BaseData 클래스를… B 프로젝트의 isTest 메소드에 넘겨주고 싶은데요

어떻게 하면 되는지 궁금합니다… B 프로젝트에도 BaseData 라는 클래스가 존재하고 A 프로젝트에도 존재합니다.

매개변수가 string 인 isTest 메소드를 만들어서 아래와 같이 dll 의 메소드로 string 값은 넘어가는데요.
BaseData 라는 클래스는 안되네요…

B bDLL = new();
bDLL.isTest(“ㅇㅇ”);

1개의 좋아요

잘이해가 안가는데 참조한 dll class가 사용은 되시는데
basedata class는 사용이 안되나요?
마찬가지로
basedata bdll =new();
bdll.test(“”); 동일하게 사용이 될텐데요
혹시 protected private 잘못사용된것 아닌가요??

그리고 rest api 는 요즘 트렌드는 저렇게 class new() 방식은 제가 아는한 거의 안쓰고
(심지어 윈폼 wpf에서도 의존성 방식으로 개발하죠)
inject 의존성 주입으로 관리하는것이 보통입니다.

1개의 좋아요

답변 감사합니다! inject 의존성 주입으로 관리하는것이 보통입니다. <<- 이 말은 무엇이죠…

1개의 좋아요

class : interface 이렇게 만들어서
service.AddTransient<interface.class>() 등록한다음
해당 controller 생성자에서 arg 값을 받아 사용하는것을 말합니다.
https://www.google.com/search?q=의존성+주입+c%23&sourceid=chrome&ie=UTF-8
이렇게 검색해보시면 많이 나와요 이걸 이해하고 넘어가시는것이 c# rest api 개발하시는데 도움이 되실것예요

1개의 좋아요

BaseData를 B 프로젝트의 isTest 메소드에 넘기려면 B 프로젝트에 BaseData를 참조해야 합니다.

BaseData 클래스는 어느 프로젝트에 있나요? 만약 A 프로젝트에 있다면 상호 참조로 안됩니다. 참조가 A → B 프로젝트이면서 A ← B 프로젝트일 수 없습니다.

별도의 프로젝트로 BaseData를 정의하고 (이걸 C라고 합시다) A → C, B → C 이렇게 하시거나 BaseData를 B 프로젝트에 정의하고 사용하는 방법이 있습니다.

1개의 좋아요

BaseData 라는 클래스를 A와 B 프로젝트 모두에 정의해놨습니다, 이런 경우 어떻게 참조 할 수 있을까요?

1개의 좋아요

답변 감사드려요! 알려주신 검색 부분 보고 배워보겠습니다!

1개의 좋아요

이름이 동일하더라도 다른 클래스 입니다. 서로 호환되지 않습니다. 위의 제 글을 다시 보시고 저렇게 참조 관계를 두시기 바랍니다.

1개의 좋아요

답변 감사합니다!!,

1개의 좋아요