2017-01-05 8 views
1

私はAzure ADに接続し、いくつかのAzure AD情報を取得するAzure関数を持っています。Azure関数:System.Linq.ExpressionsでC#コンパイルエラー

私は.Users.Expand()プロパティを使用する場合、私は次のコンパイルエラーが表示さ:

activeDirectoryClient.Users.Expand(x => x.MemberOf).ExecuteAsync().Result; 

    (38,17): error CS0012: The type 'Expression<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Linq.Expressions 

を私が正しく名前空間を追加し、またproject.jsonでそれを追加しようとしました:

{ 
"frameworks": { 
"net46":{ 
    "dependencies": { 
    "Microsoft.IdentityModel.Clients.ActiveDirectory": "3.13.5", 
    "Microsoft.Azure.ActiveDirectory.GraphClient": "2.1.0", 
    "System.Linq": "4.0.0", 
    "System.Linq.Expressions": "4.0.0" 
    } 
    } 
} 
} 

C#を使用してAzure関数ソリューションにLinq.Expressionsに関する既知の問題がありますか?

答えて

0

Azure関数にLinq.Expressionsの問題はありません。 Linq.Expressionを使用してHttpTriggerCSSharpの

の作業例:

project.json

{ 
"frameworks": { 
"net46":{ 
    "dependencies": { 
    "Microsoft.IdentityModel.Clients.ActiveDirectory": "3.13.5", 
    "Microsoft.Azure.ActiveDirectory.GraphClient": "2.1.0" 
    } 
    } 
} 
} 

run.csx

#r "System.Linq.Expressions" 

using System.Net; 
using Microsoft.Azure.ActiveDirectory.GraphClient; 
using Microsoft.IdentityModel.Clients.ActiveDirectory; 

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log) 
{ 
    log.Info("C# HTTP trigger function processed a request."); 

    ActiveDirectoryClient activeDirectoryClient = new ActiveDirectoryClient(new Uri("https://graph.windows.net/" + "testdomain"), 
                       async() => await AcquireTokenAsyncForApplication()); 
    IUser user = activeDirectoryClient.Users.Where(u => u.UserPrincipalName == "[email protected]").ExecuteSingleAsync().Result; 

    return req.CreateResponse(HttpStatusCode.OK, "Hello"); 

} 

public static async Task<string> AcquireTokenAsyncForApplication() 
{ 
    return "test"; 
} 
+0

こんにちはアレクセイは、 は、高速応答をいただき、ありがとうございます。私は同じ節と同じproject.sonのエントリを使用している。 var activeDirectoryClient = new ActiveDirectoryClient(新しいUri( "https://graph.windows.net/" + aadTenantName)、async()=> {GetAccessToken(aadTenantName、clientID、clientSecret);})を返します。 var users = activeDirectoryClient.Users.Expand(x => x.MemberOf).ExecuteAsync()。結果; //コンパイルエラーを返します // var users = activeDirectoryClient.Users.ExecuteAsync()。結果;これは正しくコンパイルされます。 – Jens

+0

こんにちはジェンス。私は私の答えを編集しました。 project.jsonから "System.Linq。*"依存関係を削除し、run.csxに#r "System.Linq.Expressions"を追加してください。このコードはエラーなしでコンパイルされます。 –

+0

こんにちはAlexey。確かに、これは正しく動作します。それを手伝ってくれてありがとう。 私の最初の考えで何が間違っていたのか分かりません:-) – Jens

関連する問題