[英]Using Bind in an asynchronous context
我正在使用 `language-ext' package 作為 C# 試圖使我們的代碼更健壯,但在如何鏈接異步操作上苦苦掙扎。 考慮以下描述車輛的簡單 class 的抽象示例 和另一個 class 存儲一些關於車輛的 state 和一個用於檢索車輛的車輛存儲庫 如果我想將MyVehicleStat ...
[英]Using Bind in an asynchronous context
我正在使用 `language-ext' package 作為 C# 試圖使我們的代碼更健壯,但在如何鏈接異步操作上苦苦掙扎。 考慮以下描述車輛的簡單 class 的抽象示例 和另一個 class 存儲一些關於車輛的 state 和一個用於檢索車輛的車輛存儲庫 如果我想將MyVehicleStat ...
[英]Compiler error trying to work out what to put in an Either.Match lambda
我有一種情況,我有一堆方法在開始時都需要相同的代碼。 為了減少重復,我想將該代碼移動到一個通用的輔助方法中,該方法將采用 lambda 參數作為特定於案例的代碼。 該場景涉及由發卡機構發行的會員卡。 所有方法都采用發卡機構 ID 和一些 JSON(序列化為字符串,因為它來自 API)。 JSON ...
[英]Why is my Either-returning method always returning Left, irrespective of what happened?
這里的用例是我向 Entity Framework DbContext添加了一個方法,它在保存之前做了一些額外的工作,然后根據結果返回一個Either 。 這個的一個非常簡化的版本看起來像這樣......static async Task<Either<string, Unit> ...
[英]How do I extract the value from a LanguageExt Validation?
我正在學習 LanguageExt 並在 C# 中使用函數式編程 styles。 我創建了一個新的 class,我的目標是一個 ValueObject: 我的驗證人在哪里: AlertDefinitionType只是一個枚舉,我需要確保在 REST 端點中傳遞的整數對枚舉有效。 有幾件事讓我絆倒 ...
[英]LanguageExt functional Result for always-valid domain models
問題陳述世界足部組織 (WFO) 要求我計算客戶應用程序提供的鞋碼總和。 發送到我的 API 的數據可能包含無效的鞋碼,例如負值。 我的目標是使用始終有效的領域模型,因為這是領域驅動設計中的常見做法。 我一直使用 Result 類來暴露成功或失敗 object ( 類似於這個問題)。 如果沒有使用有 ...
[英]LanguageExt - Compiler error using method that returns Task<Either<string, T>> in a Linq query
以為我已經掌握了這個竅門,我又被困住了! 我正在嘗試編寫一個將加密字符串作為參數的方法。 該字符串包含要在我們的數據庫中注冊的設備的序列號和密碼,以及相應的 ASP.NET Identity Core 用戶。 雖然這與問題並不嚴格相關,但可能會解釋方法名稱。 后面的前兩個代碼片段構成一個 MRE, ...
[英]How do I bind a Task<List<Card>> to Either<> with Language-Ext
我有可以請求數據庫中保存的卡列表的設備(例如移動電話、支付終端等)。 為安全起見,設備需要自行授權,並在 JWT 令牌中顯示其序列號。 如果其中任何一個不匹配,我們將拒絕該請求。 感謝最近對相關問題的大量幫助,我現在有兩種在類似情況下使用的方法......static Either<int, ...
[英]How do I convert an Either<T1, Card> to Either<T2, Card> with LanguageExt?
我有這樣的方法...public static async Task<Either<string, Card>> GetCard(/* parameters */) => // code ommitted for clarity ...我這樣使用(為清楚起見省 ...
[英]How do I return a non-Error type for Left with LanguageExt EitherAsync?
我有一個在數據庫中查找會員卡的方法,如果找到並且有效則返回它,否則返回一個enum值。 這允許調用代碼打開enum值。 我想返回一個Either<TransactionRequestStates, Card> ,因為該方法將與幾個獲取和驗證傳入數據的類似方法綁定在一起。 由於應該進行數 ...
[英]How do I await code inside a method that returns an EitherAsync<T1, T2> in LanguageExt?
在 LanguageExt 中使用TryAsync時,您可以執行以下操作... static TryAsync<int> Divide(int n1, int n2) => TryAsync(async () => { // Simulate some a ...
[英]How do I bind an async method that returns an Either to an async method that accepts an Option in Language-Ext?
這是我詢問的關於返回不同類型的綁定 monad 的類似問題的后續問題。 在得到一個明確的答案后,我意識到我沒有問完整的問題。 馬克·西曼(回答者)建議我將這個問題作為一個新問題提出,而不是修改這個問題(它確實獨立存在,所以值得離開),所以就這樣吧。 為簡單起見,我提出了一個不太現實的用例(例如,角 ...
[英]How do I bind a method that returns an `Either` to a method that accepts an `Option` in Language-Ext?
為簡單起見,我提出了一個不太現實的用例(例如角色檢查可以以不同的方式進行等),但我試圖不混淆這個問題,所以請多多包涵。 假設我想編寫一個接受int的方法,並且需要... 檢查使用的 authed 是否具有發出請求的適當角色 檢查Id對應數據庫中的一個客戶 檢查客戶是否活躍 如果我們通過 ...
[英]How to simplify error propagation in C# with Language-Ext, similar to Rust's ? operator?
有沒有人知道在使用Language-Ext 庫在 C# 中進行函數式編程時簡化錯誤處理的方法,類似於 Rust 的錯誤傳播運算符? 例如,我想在下面的Create方法中簡化錯誤處理: using LanguageExt; using LanguageExt.Common; using stati ...
[英]How do I get an Option<T> from an Entity Framework Core database call?
抱歉,如果這是一個愚蠢的問題,但我正在努力使用Language-Ext ,並且似乎無法找到一種巧妙的方法來做到這一點。 在非功能代碼中,我可以做這樣的事情...... async Task DoFerretStuff(string id) { Ferret? ferret = await ct ...
[英]Call Langext MapAsync only if Option is Some value and not None
我使用 LangExt 庫,但遇到 UserId 1 不存在用戶的情況。 由於 userId 1 不存在用戶,因此GetUser(1)返回Option<None>並且其余代碼失敗並出現異常 如何處理這種情況。? 並確保mapAsync和map鏈接僅在選項是某個用戶而不是無用戶時執行。 ...
[英]Await OptionAsync<T> from Language-ext
我正在嘗試向 Paul Louth 學習 c# Language-ext。 我發現 OptionAsync 類型非常方便,因為它將 Tasks 和 Alternatives 組合到一個 monad 中,使得使用兩者更容易。 但我對等待如何與 OptionAsync 一起工作感到困惑。 我以為awa ...
[英]In C#, using a loan pattern, TryAsync, and RestClient.ExecuteAsync(), how can I get the system to wait for the result of the second callout?
我目前正在重構一個使用 RestSharp 的RestClient調用 Personio 的微服務,以便使用最新版本的 RestSharp (v107),以及使用ExecuteAsync而不是Execute 。 我有以下方法: 如上面的代碼所示,該方法在返回結果之前不會等待,或者碰巧拋出原因未知的 ...
[英]How do I bind together multiple monads?
我在LanguageExt中使用TryAsync monad,但在嘗試將多個綁定在一起時遇到了困難。 我仍在學習函數式編程,因此可能完全錯誤地這樣做。 請隨時在這里評論我的方法的任何部分。 假設我有以下方法調用 Google Drive API ...TryAsync<File> Ge ...
[英]LanguageExt: How do I do the equivalent of Option<T>.Match with a [Union]?
我想創建一個類似於Option<T>的聯合,但它允許 3 路 state,而不是 2 路 state。 這樣做的原因是在從數據庫加載數據時使用它。 如果我用Option<T>做這個,我會做這樣的事情......Option<Person> jimOpt = Op ...
[英]Return IEnumerable of a property of the Key in a Map
假設我有以下課程: 我有一個 Map: 如何a返回( IEnumerable<string> )列表? 我正在嘗試寫: 但這行不通。 我錯過了什么? ...