winform에서 combobox의 DataSource로 IEnumerable 사용 방법 문의

안녕하세요.
현재 로컬에 설치된 SQL 서버의 인스턴스 목록을 가져오려고 하는데요.
누겟에서 다음의 패키지를 설치하고 Microsoft.SqlServer.SqlManagementObjects 패키지를 설치하면
인스턴스를 가져올 수 있다고 하여 설치를 한 후 다음의 코드로 컬렉션 형태로 가져오는 것 까지 진행하였습니다.

ManagedComputer mc = new ManagedComputer();
mc.ConnectionSettings.ProviderArchitecture = ProviderArchitecture.Use64bit;

위의 코드를 통해 mc.ServerInstances 컬렉션을 가져왔고 해당 컬렉션을 Combobox에 바인딩하여
combobox에 데이터를 추가하려고 하였는데요.

cmbDBInstance.DataSource = mc.ServerInstances;

이렇게 하면 컴파일 시에는 문제가 없습니다. mc.ServerInstances가 IEnumerable 인터페이스를 구현하고 있어서
DataSource에 할당하는것은 가능하나 런타임시에 아래와 같은 오류가 발생합니다.

image

combobox의 데이터 소스중 IEnumerable 형식을 구현한 컬렉션도 가능하다고 되어있는 것 같은데
잘 안되네요. 아래 링크는 windows Forms 컨트롤에서 사용할 수 있는 인터페이스 종류를 설명하고 있습니다.

그냥 수동으로 foreach문 돌리면서 item을 추가하는 방법 밖에 없을까요?

고수님들의 조언 부탁드립니다.

1개의 좋아요

이렇게 한번 해보시겠어요?

Code

comboBox1.DataSource = mc.ServerInstances.Cast<object>().ToList();

결과
image

.
.
내용 추가
Collection 요소의 Type이 ServerInstance이니까 명시적으로 해주셔도 좋을 것 같습니다.

mc.ServerInstances.Cast<ServerInstance>().ToList()
5개의 좋아요

와. 단박에 해결 됐습니다. 답변 너무 감사드립니다.
이 부분을 좀 연구해 봐야겠네요.
다시 한번 너무 감사드립니다. ^_^;

3개의 좋아요