2012-04-04 5 views
1

나는 닷넷을 사용하여 비트 레디 스를 테스트하고있어,이 튜토리얼 http://www.d80.co.uk/post/2011/05/12/Redis-Tutorial-with-ServiceStackRedis.aspx 를 읽고 C#을 사용 따르고 내가이 번역하려고 해요 때 이제 완벽하게 일했다 F 번호 I 이것은 기본적 클래스는이 같은 것입니다 ... 처음에는 간단한 F # 클래스를 생성, 이상한 행동을했습니다 (작동하지 어느 쪽도하지 않았다 유형을 사용 있지만 예상) :이상한 행동을 사용하여 F # 클래스는

//I ve used [<Class>] to 
type Video (id : int, title : string , image : string , url : string) = 
    member this.Id = id 
    member this.Title = title 
    member this.Image = image 
    member this.Url = url 

나는 실행 코드, 내 DB를 빈 데이터를 저장, 내 # 코드를이 작업 내에서 # 클래스를 사용하는 경우 문제가 F # 클래스 것보다 확실합니다 ... 어떻게 내 f # 코드 내에서 종속 된 C# 코드없이 해결할 수

감사합니다.

+0

당신이 우리에게 실패 코드를 표시하여 시작할 수 있습니다! (DB 액세스) - 당신의 DRM이 그것의 유형 중 하나가 매개 변수 또는 일부 특수 속성이없는 생성자를 사용하여 변경 가능해야한다고 생각합니다. – Carsten

+0

나는 가변형을 추측하고 있습니다. RavenDB에 F # 코드를 인터페이스하려고 할 때 비슷한 문제가 발생했습니다. –

답변

2

튜토리얼에 따르면 F # Video 클래스가 getter가있는 생성자를 현재 사용하고있는 대신 getter 및 setter 속성으로 가득 채워야하는 것처럼 보입니다 (클래스에 의해 확인할 수 있습니다. FSI를 통해 실행).

당신은 (공공 getter 및 setter의 전체 클래스 타입에 아래로 컴파일) 가변 필드의 전체 레코드 유형을 사용하여이를 수행 할 수 있습니다

type Video = { 
    mutable Id : int 
    mutable Title : string 
    mutable Image : byte[] 
    mutable Url : string 
} 
관련 문제