Использование `System.Рисование.Цвет` в приложении F # Fable

#.net-core #f# #fable-f#

#.net-core #f# #басня-f#

Вопрос:

Я пытался использовать System.Drawing.Color в своем приложении Fable преобразование a a Color в простую rgba строку css:

 module Color =
    let rgbaString (color: System.Drawing.Color) =
        let alpha = float color.A / 255.0
        String.Format("rgba({0}, {1}, {2}, {3})", color.R, color.G, color.B, alpha)
 

К сожалению, компилятор Fable выдает ошибку, подобную приведенной ниже, для значений r, g, b и alpha:

 ERROR in ./src/App/App.fs
Module Error (from ./node_modules/fable-loader/index.js):
/everybodykurts/MyApp/src/App/App.fs(13,50): (13,57) error FABLE: Cannot resolve System.Drawing.Color.get_R
 @ ./src/App/App.fsproj 1:0-25 1:0-25
 

Я пытался использовать расширения типа F # для добавления get_R R() метода и System.Drawing.Color , но, похоже, это не работает.

 type System.Drawing.Color with 
    member this.R() = this.R
    member this.G() = this.G
    member this.B() = this.B
    member this.A() = this.A
 

Чего мне не хватает? Спасибо за любую помощь.

Ответ №1:

Fable — это компилятор F # для javascript. Он может скомпилировать большую часть F #, но очень мало .Net BCL (библиотека базовых классов).

Он просто не знает, что System.Drawing.Color это такое.

Комментарии:

1. Правда, вот полный список того, что из BCL поддерживается в Fable.